首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
程序人生
›
程序人生——Java中类、对象及方法的发起(2) ...
返回列表
发新帖
程序人生——Java中类、对象及方法的发起(2)
[复制链接]
发表于 2024-6-20 21:17:22
|
显示全部楼层
|
阅读模式
引出
程序人生——Java中类、对象及方法的发起(2)
类、对象及方法
发起41:让多重继承成为现实
Java中一个类可以多种实现,但不能多重继承。使用成员内部类实现多重继承。内部类一个紧张特性:内部类可以继承一个与外部类无关的类,包管了内部类的独立性,正是基于这一点,多重继承才会成为可能
发起42:让工具类不可实例化
工具类的方法和属性都是静态的,不需要实例即可访问。**实现方式:**将构造函数设置为private,而且在构造函数中抛出Error错误异常
发起43:避免对象的浅拷贝
浅拷贝存在对象属性拷贝不彻底的问题。对于只包含
基本数据类型的类
可以使用
浅拷贝
;而包含有
对象变量的类
需要使用
序列化与反序列化
机制实现
深拷贝
发起44:推荐使用序列化实现对象的拷贝
通过序列化方式来处理,在内存中通过字节流的拷贝来实现深拷贝。使用此方法进行对象拷贝时需注意
两点
:1、对象的内部属性都是可序列化的;2、注意方法和属性的特别修饰符,好比final、static、transient变量的序列化问题都会影响拷贝结果。一个简单办法,使用Apache下的commons工具包中的SerializationUtils类,直接使用更加简洁方便
发起45:覆写equals方法时不要识别不出自己
需要满意p.equals§返回为真,自反性
发起46:equals应该考虑null值景象
覆写equals方法时需要判一下null,否则可能产生NullPointerException异常
发起47:在equals中使用getClass进行类型判断
使用getClass方法来代替instanceof进行类型判断
发起48:覆写equals方法必须覆写hashCode方法
需要两个相同对象的hashCode方法返回值相同,所以需要覆写hashCode方法,如果不覆写,两个差别对象的hashCode肯定不一样,简单实现hashCode方法,调用org.apache.commons.lang.builder包下的Hash码天生工具HashCodeBuilder
发起49:推荐覆写toString方法
原始toString方法显示不人性化
发起50:使用package-info类为包服务
package-info类是专门为本包服务的,是一个
特别性
主要体如今3个方面:1、它不能随便被创建;2、它服务的对象很特别;3、package-info类不能有实当
代码
;package-info类的
作用
:1、声明友好类和包内访问常量;2、为在包上标注注解提供便利;3、提供包的整体注释说明
发起51:不要主动进行垃圾回收
主动进行垃圾回收是一个非常伤害的动作,因为System.gc要停止所有的响应(Stop 天河world),才气检查内存中是否有可回收的对象,所有的请求都会暂停
深入认识JVM
JVM内存分配,类加载
Java进阶(1)——JVM的内存分配 & 反射Class类的类对象 & 创建对象的几种方式 & 类加载(何时进入内存JVM)& 注解 & 反射+注解的案例
创建对象的4种方法总结
Java进阶(4)——联合类加载JVM的过程明白创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化
垃圾回收GC
Java进阶(垃圾回收GC)——理论篇:JVM内存模子 & 垃圾回收定位清除算法 & JVM中的垃圾回收器
简介:本篇博客先容JVM的内存模子,对比了1.7和1.8的内存模子的变化;先容了垃圾回收的语言发展;叙述了定位垃圾的方法,引用计数法和可达性分析发以及垃圾清除算法;然后先容了Java中的垃圾回收器,由串行、到并行再到并发,最后到G1的演变;最后给出了垃圾回收器的对比和使用指引。
JVM调优,Arthas使用
Java进阶(JVM调优)——阿里云的Arthas的使用 & 安装和使用 & 死锁查找案例,重新加载案例,慢调用分析
Java进阶(JVM调优)——JVM调优参数 & JDK自带工具使用 & 内存溢出和死锁问题案例 & GC垃圾回收
认识多线程
创建多线程方法+了解线程池
Java进阶(5)——创建多线程的方法extends Thread和implements Runnable的对比 & 线程池及常用的线程池
多线程下-1非原子性问题即办理
Java进阶(6)——抢购问题中的数据不
安全
(非原子性问题)& Java中的synchronize和ReentrantLock锁使用 & 死锁及其产生的条件
再论线程,创建、生命周期
Java进阶(再论线程)——线程的4种创建方式 & 线程的生命周期 & 线程的3大特性 & 集合中的线程
安全
问题
主要内容:
1.线程创建的方式,继承Thread类,实现Runable接口,实现Callable接口,采用线程池;
2.线程生命周期: join():运行结束再下一个, yield():暂时让出cpu的使用权,deamon():守护线程,最后结束,sleep():如果有锁,不会让出;
3.线程3大特性,原子性,可见性,有序性;
4.list集合中线程
安全
问题,hash算法问题;
总结
程序人生——Java中类、对象及方法的发起(2)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
回复
使用道具
举报
返回列表
浏览过的版块
Oracle
移动端开发
运维.售后
分布式数据库
物联网
云原生
网络安全
DevOps与敏捷开发
Mysql
数据仓库与分析
守听
+ 我要发帖
×
登录参与点评抽奖,加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表