![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Effective Java
文章平均质量分 92
qq_51732923
这个作者很懒,什么都没留下…
展开
-
Effective Java-读书笔记 第三章-对于所有对象都通用的方法
不要试图从散列码计算中排除掉一个对象的关键域来提高性能,这有可能导致散列函数将大量实例映射到极少数的散列码上,本来以线性级时间运行的程序,将会以平方级的时间运行。如果在编写一个值类,它具有非常明显的内在排序关系,比如按字母排序、按数值排序、按日期排序等,那就应该坚决考虑实现Comparable接口。< 和 > 操作符,而应该使用装箱基本类型的静态compare方法,或者在Comparator接口中使用比较器构造方法。在每个覆盖了的equals方法的类中,那必须覆盖hashCode方法。原创 2023-08-31 08:32:16 · 85 阅读 · 0 评论 -
Effective Java-读书笔记 第二章-创建和销毁对象
更常见的情况是,我们并不确定“缓存项的生命周期是否有意义”,缓存中的项会随着时间的推移变得越来越没有价值,在这种情况下,缓冲应该时不时清除掉没用的项。使用JavaBeans模式,这种方式创建实例很容易,并且易于阅读,但是这有一个严重的缺点:因为构造过程被分到了几个调用中,在构造过程中JavaBeans可能处于不一致的状态,同时JavaBeans模式与不可变类之间存在冲突,这就需要程序员付出额外的努力来确保它的线程安全。公有域方法的优势在于可以清楚的理解这个类是一个Singleton:共有的静态域是静态的。原创 2023-08-30 10:41:07 · 38 阅读 · 0 评论