茴香豆系列之单例的几种写法

1. 懒汉式

public class Singleton {private static Singleton instance;private Singleton(){}public static synchronized Singleton getInstance(){if (instance == null) {instance = new Singleton();}return instance;}
}

2. 饿汉式

public class Singleton {private static Singleton instance = new Singleton();private Singleton(){}public static Singleton getInstance(){return instance;}
}

3. 静态内部类

public class Singleton {private static class SingletonHolder{private static final Singleton instance = new Singleton();}private Singleton(){}public static final Singleton getInstance(){return SingletonHolder.instance;}
}

4. 枚举式

public enum Singleton {instance;public void somthing(){}
}

5. 锁两遍

public class Singleton {private volatile static Singleton singleton;private Singleton(){}public static Singleton getSingleton(){if (singleton == null) {synchronized (Singleton.class) {if (singleton == null) {singleton = new Singleton();}}}return singleton;}
}







本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部