精华帖 (0) :: 良好帖 (0) :: 新手帖 (16) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-10-23
先上代码
public class Singleton { private static Singleton instance = null; public static Singleton getInstance() { if(instance == null) { instance = SingletonLazy.lazy; } return instance; } private static class SingletonLazy { public static Singleton lazy = new Singleton(); } }
classloader首先会加载Singleton.class文件,运行到if(instance==null)这句的时候,如果为空,回去加载SingletoneLazy.class。如此便实现了lazy初始化。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-10-24
这样实现的优势是什么?
|
|
返回顶楼 | |
发表时间:2012-10-24
没看出哪边lazy了,难道是有个lazy名字就lazy了?
|
|
返回顶楼 | |
发表时间:2012-10-24
某本书上写的,java 核心技术?
|
|
返回顶楼 | |
发表时间:2012-10-24
内容很充实,标题很立意。
|
|
返回顶楼 | |
发表时间:2012-10-24
1.public class Singleton {
2. 3. private static Singleton instance= new Singleton(); private Singleton(){ } 4. 5. public static Singleton getInstance() { 6. return instance; 10. } 11. 15. 16.} |
|
返回顶楼 | |
发表时间:2012-10-24
public class Singleton{
static class SingleDemo{ static Singleton instance=new Singleton(); } public static Singleton getInstance(){ return SingleDemo.instance; } } 掌握java类执行初始化顺序,单列模式方法很多 |
|
返回顶楼 | |
发表时间:2012-10-24
这个可是延迟单例的最佳单例代码实现……,也不会出现同步问题
|
|
返回顶楼 | |
发表时间:2012-10-24
最后修改:2012-10-24
LZ上的一段代码不简洁,冗余。
这样更好: public class Singleton { public static Singleton getInstance() { return SingletonLazy.lazy; } private static class SingletonLazy { public static Singleton lazy = new Singleton(); } } |
|
返回顶楼 | |
发表时间:2012-10-24
zhukewen_java 写道 LZ上的一段代码不简洁,冗余。
这样更好: public class Singleton { public static Singleton getInstance() { return SingletonLazy.lazy; } private static class SingletonLazy { public static Singleton lazy = new Singleton(); } } 我们使用就这个 |
|
返回顶楼 | |