11 2016 档案
摘要:在Effective Java中看到的,试了一下,有点意思,考查的知识点是volatile关键字。 下面这段代码,预期是打印it takes xxxx miliseconds. 。但实际上,陷入了死循环。 学习过Java内存模型就会知道,这是因为stopRequested这个域,在主线程和backg
阅读全文
摘要:1.什么是延迟初始化 延迟初始化(lazy initialization,即懒加载)是延迟到需要域的值时才将它初始化的行为。如果永远不需要这个值,这个域就永远不会被初始化。这种方法既静态域,也适用于实例域。 最好建议“除非绝对必要,否则就不要这么做”。 2.延迟初始化线程安全的一个策略:同步 延迟初
阅读全文
摘要:1. 什么时候需要重写Object.equals方法 如果类具有自己特有的“逻辑相等”概念(不同于对象等同的概念),而且超类还没有覆盖equals以实现期望的行为,这时我们就需要覆盖equals方法。 这通常属于“值类(value class)”的情形。值类仅仅是一个表示值的类,例如Integer或
阅读全文