摘要:
覆盖equals是要遵守的约定1.覆盖种类: -类的每个1实例本质上都是唯一的 -不关心类是否提供了”逻辑相等”的测试功能(Random测试是否能随机相同数字) -超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的(Set List Map)... 阅读全文
2017年2月24日 #
摘要:
避免使用终结方法1.使用终结方法会导致行为不稳定,性能降低,以及可移植性的问题.(终结线程的优先级过低) 终结方法不能保证被及时的执行(从一个对象变得不可到达开始,到中介方法被执行,所花费的时间是任意长的)2.怎么不编写终结方法:提供一个显式的终止方法,并要求该类的客户端在每个... 阅读全文
摘要:
消除过期对象的引用过期引用 – 在操作集合类的时候,未清理过期的对象引用(即:过期引用),常会导致内存泄露.从而报outOfmemory错误. 1.过期对象导致内存泄漏. 2.一旦对象引用过期,清除这些引用 3.如果一个过期对象中引用了其他对象,那么其引用的对象也不会被清除 4.W... 阅读全文
摘要:
避免创建不必要的对象1.通过延迟初始化对象提高性能 调用功能方法时调用静态工厂方法,而不是调用类时使用 2.适配器:把功能委托给一个后备对象,从而为后备对象提供一个接口的对象 3.自动装箱:优先使用基本类型而不是装箱的基本类型,要当心无意识的自动装箱 自动装箱类型每次使用的... 阅读全文
摘要:
通过私有构造器强化不可实例化的能力原理:只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此只要让这个类包含私有构造器,他就不能被实例化 这种方式下,子类没有可访问的超类构造器可调用 //只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此只要让这个类包含私有... 阅读全文
摘要:
使用是由构造器或枚举类型强化singleton普通singleton:借助AccessibleObject.setAssess方法,通过反射机制调用私有构造器.抵御这种攻击可以修改构造器,让其再被要求创建第二个实例的时候抛出异常 //允许创建一个实例,当通过反射调用private ... 阅读全文
摘要:
** 应对多个构造函数应当使用构建器** 静态工厂和构造器都不能很好的扩展到大量的可选参数,遇到大量参数有大量可选域时,只能重复生成可选参数递增的构造方法,这种构造模式叫做重叠构造器模式javaBeans模式 调用一个无参构造器来创建对象,然后调用... 阅读全文
摘要:
构造器和静态工厂方法**构造器是大家创建类时的构造方法,即使不显式声明,它也会在类内部隐式声明,使我们可以通过类名New一个实例.静态方法是构造器的另一种表现形式**主题要点:何时以及如何创建对象,何时以及如何避免创建对象,如何确保对象能够适时的销毁,以及如何管理对象销毁之前必须进... 阅读全文
2017年2月16日 #
摘要:
要学习设计模式,首先要明白设计模式,就是为实现某一种或某一组功能提供的代码编码方式.它没有固定的套路,只有约定俗成的风格.所有编码者可以根据已有的设计模式开放思维,设计出自己的设计模式,也会在无意中使用某些设计模式. 接下来我们举几个常用的模式例子 一..>单例模式 1.作用 -保证整个应用... 阅读全文
摘要:
Junit测试用例不是用来证明你是对的,而是用来证明你没有错 1.功能 -在项目未在浏览器运行之前对获得的结果和预期的结果进行比较调试,减少BUG和发布时的修复工作 2.测试类和代码类应分开存放.在src目录下new一个Test资源目录 3.JUnit Test ... 阅读全文