bean
实例就是一个单例对象。public class singleton { private static singleton instance; private singleton (){} public static singleton getinstance() { if (instance == null) { instance = new singleton(); } return instance; } }
synchronized
,实现如下:public class singleton { private static singleton instance; private singleton (){} public static synchronized singleton getinstance() { if (instance == null) { instance = new singleton(); } return instance; } }
public class singleton { private static singleton instance = new singleton(); private singleton (){} public static singleton getinstance() { return instance; } }
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; } }
public class singleton { private static class singletonholder { private static final singleton instance = new singleton(); } private singleton (){} public static final singleton getinstance() { return singletonholder.instance; } }
懒汉式线程不安全
、懒汉式线程安全
、饿汉式
、双重校验锁的实现
、静态内部类的实现
。这几种方式各有优缺点,陈某推荐使用静态内部类的实现方式。bean
的单实例才能管理和监控bean的创建和销毁。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
java多线程定时器和java判断一个时间是否在时间区间内和用正则表达式获取String字符串之间的数据
网友评论