论坛首页 Java企业应用论坛

java利用class的load机制实现单例模式

浏览 7311 次
精华帖 (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初始化。

   发表时间:2012-10-24  
这样实现的优势是什么?
0 请登录后投票
   发表时间:2012-10-24  
没看出哪边lazy了,难道是有个lazy名字就lazy了?
0 请登录后投票
   发表时间:2012-10-24  
某本书上写的,java 核心技术?
0 请登录后投票
   发表时间:2012-10-24  
内容很充实,标题很立意。
0 请登录后投票
   发表时间: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.} 
0 请登录后投票
   发表时间:2012-10-24  
public class Singleton{

   static class SingleDemo{
       static Singleton instance=new Singleton();
    
}
  public static Singleton getInstance(){
        return SingleDemo.instance;
}
}
掌握java类执行初始化顺序,单列模式方法很多
0 请登录后投票
   发表时间:2012-10-24  
这个可是延迟单例的最佳单例代码实现……,也不会出现同步问题
0 请登录后投票
   发表时间: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();
    }

}


0 请登录后投票
   发表时间: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();
    }

}




我们使用就这个
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics