码迷,mamicode.com
首页 > 编程语言 > 详细

Effective Java

时间:2014-11-09 16:38:44      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   os   使用   java   sp   div   on   

1.终结方法(finalizer)通常是不可预测的,也是很危险的。应避免使用终结方法。

? ? ?C++中的析构函数可以用来回收内存以及内存以外的资源,而在java中,内存是自动回收的,而内存之外的其他东西可以使用try- finally来回收。
? ? ?终结方法的缺点在于不能保证被及时执行(甚至有可能不执行)。
?
2。什么时候应该重载equals方法?有什么要求?
? ? ?如果类有自己特有的“逻辑相等”概念(不等同于对象相等),切超累还没有覆盖equals以实现预期的行为,此时需要去手动覆盖equals方法。
? ? ?很多类(包括集合类)在使用时都依赖于传递给它们的对象是否遵守了equals约定。
? ? ?equals约定:
? ? ? ? ? 自反性:x.equals(x)=true
? ? ? ? ? 对称性:x.equals(y) == y.equals(x)
? ? ? ? ? 传递性:x.equals(y) ?y.equals(z) ?-> x.equals(z)
? ? ? ? ? 一致性:多次调用保证会返回同样的结果
?
? ? ?覆盖equals方法时,总是要覆盖hashcode方法。
?
? ? ?Object内的equals方法:public boolean equals(Object obj)
? ? ?如果自己在试图覆盖时写成 public boolean equals(MyClass obj)那就变成重载了。
?
3.toString()的默认实现是输出: 类名 + @ + 散列码的无符号十六进制表示法
?
4.实现Comparable接口后,需要实现其中的compareTo方法
? ? ??

Effective Java

标签:style   io   ar   os   使用   java   sp   div   on   

原文地址:http://www.cnblogs.com/weilf/p/4085291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!