关于java中lazy initialization的问题
最近在看thinkinginjava。遇到lazyinitialization没有年明白。请哪位大侠帮解释下。最好能举个例子。谢谢啦。...
最近在看thinking in java。遇到lazy initialization没有年明白。请哪位大侠帮解释下。最好能举个例子。谢谢啦。
展开
展开全部
lazy initialization就是在使用的时候才进行初始化,与之对应的是在类加载的时候就初始化(即时加载)。二者的区别在于对象的生成时间不同;
给你举一个单例模式的例子。
public final class Singleton {
// private static Singleton st;//lazy initialization 类调用时才生成对象;
private static Singleton st = new Singleton();//即时加载 类加载时就生成对象;
private Singleton() {// 构造私有
}
public static Singleton getInstance() {// 提供方法
/*
* if(st==null){ st =new Singleton(); }
*/
return st;
}
}
给你举一个单例模式的例子。
public final class Singleton {
// private static Singleton st;//lazy initialization 类调用时才生成对象;
private static Singleton st = new Singleton();//即时加载 类加载时就生成对象;
private Singleton() {// 构造私有
}
public static Singleton getInstance() {// 提供方法
/*
* if(st==null){ st =new Singleton(); }
*/
return st;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询