A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© android0276 中级黑马   /  2014-7-6 20:12  /  1050 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单例类要满足的要求是能且只能创建该类的一个实例
一般我看到单例类都这样写:
class SingletonClass{
     private static SingletonClass sc;
     private Singleton{ };
     public static SingletonClass  getInstance(){
       if(sc==null){
            sc=new SingletonClass();
       }
    return sc;
}
不过我觉得还应该可以这样写:
class SingletonClass{
     private static SingletonClass sc=new SingletonClass();;
     private Singleton{ };
     public static SingletonClass  getInstance(){
             return sc;
}
因为类在第一次被创建时会对类属性分配空间,第二次就不会再给类属性分配空间了,所以后面一种方法在每次创建对象时也调用的是同一个对象,而且后面一种写法更简洁.

2 个回复

倒序浏览
……大哥……这叫懒汉式和饿汉式,一般用饿汉式,因为懒汉式会有线程安全问题,而且可以在定义类的实例时加final修饰,这样更严谨
回复 使用道具 举报
虽然都是单例模式,但是单例模式里面有分为饿汉式与懒汉式,我觉得lz写的第二个例子和第一个例子不属于同一个,由于自己也只是稍微了解,这里只做建议
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马