步骤
1)无参构造私有化
2)静态内部类new对象
3)对外提供一个静态方法来返回对象
优点
避免了线程不安全,利用静态内部类特点实现延迟加载,效率高
缺点
没有缺点,至于今天依然相对完美【2019.11.19】
说明
类装载时,静态内部类不会被装载。调用公共方法时,加载内部类,加载只会有一次,所以线程安全。【在类进行初始化时,别的线程是无法进入的。 】
代码实现
package com.yuan.dp.singleton;
/**
* 单利模式-懒汉式-静态内部类
*
* @author Yuan-9826
*/
public class SingleTon_6 {
/**
* 1.构造私有化
*/
private SingleTon_6() {
}
/**
* 2.构建静态内部类
*/
private static class InsideSingleTon_6 {
private static final SingleTon_6 SINGLE_TON_6 = new SingleTon_6();
}
/**
* 3.提供公共方法获取实例
* 调用该方法时才会加载静态内部类
* @return
*/
public static SingleTon_6 getInstance() {
return InsideSingleTon_6.SINGLE_TON_6;
}
}
网友评论