黑马程序员技术交流社区

标题: 刚看到一个单例设计模式新建对象的 也是醉了 [打印本页]

作者: 默默丶    时间: 2014-9-5 11:14
标题: 刚看到一个单例设计模式新建对象的 也是醉了
public final class Singleton
{
        private static String name;
        private static String sex;
        private static int age;
        private static Singleton s = null;
        private Singleton(String name, String sex, int age){                // 构造方法
                this.name = name;
                this.sex = sex;
                this.age = age;
        }               
        public static  Singleton getInstance(String name, String sex, int age){
                if(s==null){
                        synchronized(Singleton.class){
                                if(s==null)
                                        s=new Singleton(name,sex,age);
                        }
                }
                return s;
               
        }
        public String toString(){
                return("姓名="+name+"\n性别="+sex+"\n年龄="+age);
        }
       
        public static void main(String[] args)
        {
                Singleton sg1 = Singleton.getInstance("张三","男",20);
                Singleton sg2 = Singleton.getInstance("李四","男",21);
               
                System.out.println(sg1);
                System.out.println(sg2);
        }
}

多线程的应该可以直接调用这个类也能用 但是多线程貌似饿汉式比较好 这个延迟加载有点蛋疼
作者: fantacyleo    时间: 2014-9-5 11:17
双重判定可能存在内存问题导致失效。饿汉式用静态内部类同样可以延迟加载,代码还简单




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2