全部博文(80)
发布时间:2013-05-16 18:12:55
单例模式的双检索实现,是依赖于编译器的,很多平台和带优化的编译器,这样写是错误的。 如果编译成如下代码,那双检索的单例没有问题。 1. temp = 分配内存 2. 调用temp的Constructor 3. instance = temp .........【阅读全文】
发布时间:2012-12-20 19:57:22
1.对象的强、软、弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。图1为对象应用类层次。图1⑴强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引......【阅读全文】