![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 56
Dson2020
一步一个脚印
展开
-
静态工厂方法代替构造器的总结
一、静态工厂方法与构造器不同的第一大优势在于,它们有名称。1.方法的签名(1)定义:方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。(2)注意:不包括它的返回类型以及访问修饰符。(3)应用场景:重载和重写,构造器2.重载与重写的区别(1)作用范围:重写是基于父子类间的继承关系,子类通过重写覆盖父类的某个方法;重载则是某个类可以有多个同名方法,属于原创 2016-04-12 23:44:12 · 1361 阅读 · 0 评论 -
单元素枚举类型实现Singleton
1.公有域的singleton写法public class Apple { public transient final static Apple INSTANCE = new Apple(); public String getApple() { return "Apple"; }}2.单元素枚举类型的singleton写法public enu原创 2016-04-17 22:38:33 · 944 阅读 · 0 评论 -
构建器模式
1.问题场景:设计某个类时,需要传入多个构造器参数(如6个参数),且这些参数中有必选参数(2个)和非必选参数(4个),那么该如何设计该类的构造器会更为合理呢?方案一:重叠构造器模式方案二:JavaBeans模式方案三:构建器模式... ...2.重叠构造器模式(1)形式:先提供一个包含了所有的构造参数的构造方法,再被其余的构造参数较少的构造方法来调用。简单的说,就是原创 2016-04-14 23:33:34 · 1120 阅读 · 0 评论 -
对所有对象都通用的方法
一、覆盖equals时请遵循通用的约定1、自反性:对象必选等于自身2、对称性:a.equals(b) 与b.equals(a)结果一致,实例如下A:"ABc" B:"abc"A.equals(B) => true(不区分大小写)B.equals(A) => false(区分大小写)3、传递性:保证a.equals(b),b.equals(c),a.equals(c)4原创 2016-05-07 22:41:47 · 460 阅读 · 0 评论 -
消除过期的对象引用
一、JVM中的垃圾回收机制虽然会自动回收不再使用的对象,但是其回收机制是有前提的条件的,违背了中前提条件一般就会出现内存泄漏。而处于内存泄漏的对象特点如下:1、对象可达,即该对象还存在,还可以被访问2、对象无用,该对象永远都不会再被使用。二、过期引用1、定义:永远都不会被解除的引用2、特点:非常隐蔽,gc不会回收这中对象引用,而且也不会回收被该对象所引用的其他对象3原创 2016-04-25 00:05:47 · 892 阅读 · 0 评论 -
Javassist基础与实践
概述对于Javassist可理解成在java语言层面上直接操纵java字节码的一种工具。经典应用场景是在构建java代码阶段直接修改字节码,如代码插桩。特点:更改原有class:增、删和修改class中的字段或方法;修改类的继承结构新增class:增加字段、方法、构造方法;注意不能新增接口。新增接口:只适用于接口新增注解:用于创建注解核心基础CtClass:Javassist并不是直接操原创 2017-11-02 11:18:12 · 2331 阅读 · 0 评论 -
Java项目重构总结
重构步骤:一、先建立可靠的测试环境:测试的目的是用于确保重构出来的代码能稳定运行,否则一旦对外发布就会容易出现问题。总结:单元模块小重构,单元模块测试二、分解并重组1、什么情况下需要进行分解(1)冗长的代码(2)重复的代码2、方法(1)局部变量和参数(2)变量易名:提高代码的清晰度。(3)去除临时变量(4)使用多态取代多分支条件逻原创 2016-04-23 23:07:10 · 8132 阅读 · 0 评论