单例模式——设计模式个人学习

来源:互联网 发布:瓷妆口红怎么样 知乎 编辑:程序博客网 时间:2024/05/02 01:19

单例模式分为:饿汉模式和懒汉模式

懒汉模式:非线程安全

public class Singleton1 {// 构造函数私有化private Singleton1() {};// 私有对象private static Singleton1 singleton = new Singleton1();// 得到私有对象public static Singleton1 getInstance() {return singleton;}}
饿汉模式:线程安全

public class Singleton2 {// 构造函数私有化private Singleton2() {};// 私有对象private static Singleton2 singleton;// 得到私有对象public static Singleton2 getInstance() {if (null == singleton) {singleton = new Singleton2();}return singleton;}}
测试类:

public class Test {/** * 饿汉模式:加载速度快、调用慢需要先创建类、线程安全 * 懒汉模式:加载速度慢、调用快开始创建类、线程不安全 * @param args */public static void main(String[] args) {Singleton1 s1 = Singleton1.getInstance();Singleton1 s2 = Singleton1.getInstance();Singleton2 s3 = Singleton2.getInstance();Singleton2 s4 = Singleton2.getInstance();if (s1 == s2) {System.out.println("s1和s2相同!");} else {System.out.println("s1和s2不同");}if (s3 == s4) {System.out.println("s3和s4相同!");} else {System.out.println("s3和s4不同");}}}




0 0
原创粉丝点击