200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java中的单例模式:懒汉式和饿汉式和静态内部类的书写

java中的单例模式:懒汉式和饿汉式和静态内部类的书写

时间:2024-04-22 17:26:16

相关推荐

java中的单例模式:懒汉式和饿汉式和静态内部类的书写

饿汉式:

public class SingleTon {//1、私有化构造器private SingleTon(){}//2.在类内部创建一个对象private static SingleTon instance = new SingleTon();//3.通过共有的方法调佣,返回单例对象public static SingleTon getInstance(){return instance;}}

懒汉式

ublic class SingleTon {//1.私有化构造方法public SingleTon(){}//2.在类内部创建一个对象//volatile:保证内存可见性、有序性(禁止指令重排)private volatile static SingleTon instance;//3.在类中添加一个公共的方法,返回单例对象public static SingleTon getInstance(){if (instance == null){//目的:提高执行效率 DCL(Double Check Lock)双重检查锁synchronized (SingleTon.class){if (instance == null){instance = new SingleTon();//这句话的执行过程://1.在堆中开辟空间,所有属性赋默认值//2.执行构造方法//3.给局部变量赋值//jvm优化为132}}}return instance;}}

懒汉式是线程不安全的。

静态内部类的方式:

静态内部类结合了懒汉式和饿汉式的优点既保证了线程安全,又节省空间

public class SingleTon {//创建私有的构造方法private SingleTon(){}//2.在类内部创建一个对象,不使用静态内部类的成员不会加载private static class Holder{private static final SingleTon instance = new SingleTon();}//3.定义一个公开的方法来获得单例对象public static SingleTon getInstance(){return Holder.instance;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。