1.Eager public class EagerInitialization { private static Resource resource = new Resource(); public static Resource getResource() { return resource; } static class Resource { } } 2.Lazy public class SafeLazyInitialization { private static Resource resource; public synchronized static Resource getInstance() { if (resource == null) resource = new Resource(); return resource; } static class Resource { } } 3.double checked locking singleton ( 仅适用于java 5.0 以上版本) public class DoubleCheckedLockingSingleton { //java5.0 修改了内存模型, 可以保证使用volatile 声明的变量对于do...