单例模式(Singleton)
作用:用于改善全局变量和命名空间的冲突,可以说是一种改良了的全局变量。这种一个类只有一个实例,且提供一个访问全局点的方式,更加灵活的保证了实例的创建和访问约束。系统中只有一个实例,因此构造方法应该为私有 饿汉式:类加载时直接创建静态实例 懒汉式:第一次需要时才创建一个实例,那么newInstance方法要加同步 饿汉式比懒汉式要好,尽管资源利用率要差。但是不用同步。
- public class TestSingleton {
- public static void main(String[] args) {
- //单例模式获取对象
- ClassA ca=ClassA.newInstance();//饿汉式
- ClassB cb=ClassB.newInstance();//懒汉式
- }
- }
- class ClassA{ //饿汉式
- private static ClassA ca=new ClassA();
- public static ClassA newInstance(){
- return ca;
- }
- }
- class ClassB{ //懒汉式
- private static ClassB cb=null;
- public static synchronized ClassB newInstance(){
- if (cb==null) {//第一次获取就会创建,下次获取就不会再创建新的cb
- cb=new ClassB();
- }
- return cb;
- }
- }