您的位置:首页 > 编程语言 > Java开发

java实现多线程延迟加载的单例模式

2017-08-18 11:14 417 查看
package offer;
/*
* 静态变量,静态方法,静态块等都是类级别的属性,而不是单纯的对象属性。他们在类第一次被使用时被加载(记住,是一次使用,不一定是实例化)。
* 我们可以简单得用 类名.变量 或者 类名.方法来使用它们。静态内部类的加载不需要依附外部类,在使用时才加载所以当外部类加载的时候不会加载内部类(也不加载静态内部类)。
* 静态内部类也是在使用的时候才被加载。
*
* */
public class Singleton {

private static class InnerClass
{//在非静态内部类中不可以声明静态成员,只有静态内部类可以定义静态成员变量与成员方法
static final Singleton singleton=new Singleton();
}

private Singleton()
{//初始化Singleton,构造函数是私有的所以外部不能new出对象 只能通过getInstance()方法
}

public static Singleton getInstance()
{
return Singleton.InnerClass.singleton;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: