摘要:
考虑实现Comparable接口compareTo方法 Comparable接口的唯一方法,允许进行简单的等同性比较,允许执行顺序比较 Comparable接口被所有值类实现.所以如果一个值类有非常明显的内在排序关系,应该考虑实现该接口 public... 阅读全文
2017年2月24日 #
摘要:
java中的cloneclone构造器及其静态工厂的变形 优点:它们不依赖于某一种很有风险的,语言之外的对象创建机制; 它们不要求遵守尚未制定好文档的规范 他们不会于final域的正常使用发生冲突 它们不会抛出不必要的受... 阅读全文
摘要:
覆盖equals是视情况覆盖toString 1.toString返回字符串 className@163b91 -calssName 类的名称 @ @ 163b91 散列码的无符号十六进制表示法 2.toString方法应该返回对象中包含的所有值得关注的信息 ... 阅读全文
摘要:
覆盖equals是总要覆盖hashCode通过散列函数将集合中不相等的实例均匀的分布在所有可能的散列值上 1.把某个非零的常数值保存在一个名为result的int类型变量中 2.对于对象中每个关键域f(指equals方法中涉及的每个域),完成以下步骤: a.为该域计算int... 阅读全文
摘要:
覆盖equals是要遵守的约定1.覆盖种类: -类的每个1实例本质上都是唯一的 -不关心类是否提供了”逻辑相等”的测试功能(Random测试是否能随机相同数字) -超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的(Set List Map)... 阅读全文
摘要:
避免使用终结方法1.使用终结方法会导致行为不稳定,性能降低,以及可移植性的问题.(终结线程的优先级过低) 终结方法不能保证被及时的执行(从一个对象变得不可到达开始,到中介方法被执行,所花费的时间是任意长的)2.怎么不编写终结方法:提供一个显式的终止方法,并要求该类的客户端在每个... 阅读全文
摘要:
消除过期对象的引用过期引用 – 在操作集合类的时候,未清理过期的对象引用(即:过期引用),常会导致内存泄露.从而报outOfmemory错误. 1.过期对象导致内存泄漏. 2.一旦对象引用过期,清除这些引用 3.如果一个过期对象中引用了其他对象,那么其引用的对象也不会被清除 4.W... 阅读全文
摘要:
避免创建不必要的对象1.通过延迟初始化对象提高性能 调用功能方法时调用静态工厂方法,而不是调用类时使用 2.适配器:把功能委托给一个后备对象,从而为后备对象提供一个接口的对象 3.自动装箱:优先使用基本类型而不是装箱的基本类型,要当心无意识的自动装箱 自动装箱类型每次使用的... 阅读全文
摘要:
通过私有构造器强化不可实例化的能力原理:只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此只要让这个类包含私有构造器,他就不能被实例化 这种方式下,子类没有可访问的超类构造器可调用 //只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此只要让这个类包含私有... 阅读全文
摘要:
使用是由构造器或枚举类型强化singleton普通singleton:借助AccessibleObject.setAssess方法,通过反射机制调用私有构造器.抵御这种攻击可以修改构造器,让其再被要求创建第二个实例的时候抛出异常 //允许创建一个实例,当通过反射调用private ... 阅读全文
摘要:
** 应对多个构造函数应当使用构建器** 静态工厂和构造器都不能很好的扩展到大量的可选参数,遇到大量参数有大量可选域时,只能重复生成可选参数递增的构造方法,这种构造模式叫做重叠构造器模式javaBeans模式 调用一个无参构造器来创建对象,然后调用... 阅读全文
摘要:
构造器和静态工厂方法**构造器是大家创建类时的构造方法,即使不显式声明,它也会在类内部隐式声明,使我们可以通过类名New一个实例.静态方法是构造器的另一种表现形式**主题要点:何时以及如何创建对象,何时以及如何避免创建对象,如何确保对象能够适时的销毁,以及如何管理对象销毁之前必须进... 阅读全文