publicclassMain{ /**创建一个私有的Main类实例对象**/ privatestatic Main instace = new Main(); /**将Main的构造器私有*/ privateMain(){}
/**只将唯一的公开方法作为返回,供其他类调用**/ publicstatic Main getInstance(){ return instance; } }
特点:线程安全,调用效率高。 缺点:不能够延时加载
懒汉式
1 2 3 4 5 6 7 8 9 10
publicclassMain{ privatestatic Main s; privateMain(){} publicstaticsynchronized Main get Instance(){ if(s==null){ s = new Main; } return s; } }
特点:线程安全,可以延时加载。 缺点:调用效率不高。(遇到需要频繁调用时不建议使用此方法)
双重检测锁式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
publicclassMain{ privatestatic Main instance = null; publicstatic Main getInstance(){ if(instance == null){ Main m; synchronized(Main.class){ m = instance; if(m == null){ m = new Main(); } } instance = m; } return instance; } privateMain(){} }