读书人

单例推延实例化

发布时间: 2013-01-26 13:47:02 作者: rapoo

单例延迟实例化


1.如果出于性能的考虑而需要对实例域使用延迟初始化,就使用双重检查模式(double-check idiom)。这种模式避免了在域被初始化后访问这个域时的锁定开销。注意到实例域使用了volatile修饰符。

    // Lazy Initialization holder class idiom for static fields      private static class FieldHolder {          static final FieldType field = computeFieldValue();      }      static FieldType getField() { return FieldHolder.field;}  

这种模式的魅力在于getField方法没有被同步,因此延迟初始化实际上并没有增加任何访问成本。

读书人网 >编程

热点推荐