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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 阳光的嘉主角 中级黑马   /  2014-8-25 10:28  /  869 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 阳光的嘉主角 于 2014-8-25 10:30 编辑

/**
* 单例 1
*
* @Description:饿汉
*/
class Single01 {
       private Single01() {
        }

        private static Single01 single = new Single01();

        public static Single01 getInstance() {
                return single;
        }
}
-------------------------------------------------------------------------------------
/**
* 单例 2
*
* @Description:懒汉
*/
class Single02 {
        private Single02() {
        }

        private static Single02 single = null;

        public static Single02 getInstance() {
                if (single == null) {
                        single = new Single02();
                }
                return single;
        }
}
-------------------------------------------------------------------------------------
/**
* 单例 3
*
* @Description:多线程下使用这个
*/
class Single03 {
        private Single03() {
        }

        private static Single03 single = null;

        public static Single03 getInstance() {
                if (single == null) {
                        synchronized (Single03.class) {
                                if (single == null) {
                                        single = new Single03();
                                }
                        }
                }
                return single;
        }
}
-------------------------------------------------------------------------------------
/**
* 单例 4
*
* @Description:
*/
class Single04 {
        private Single04() {
        }

       public static class Single04Holder {
                public static final Single04 single = new Single04();
        }


        public static Single04 getInstance() {
                return Single04Holder.single;
        }
}
-------------------------------------------------------------------------------------
/**
* 单例 4
*
* @Description:
*/
enum Single05 {
        // SINGLE();
        // public static Single05 getInstance() {
        // return Single05.SINGLE;
        // }
        SINGLE("帅哥", 20);
        private String name;
        private int age;

        private Single05(String name, int age) {
                this.name = name;
                this.age = age;
        }

        public static Single05 getInstance() {
                return Single05.SINGLE;
        }

        @Override
        public String toString() {
                return this.name + "<---age--->" + this.age;
        }
}

public class Test {

        public static void main(String[] args) {
                Single05 single = Single05.getInstance();
                System.out.println(single.toString());
        }
}

帅哥<---age--->20

1 个回复

倒序浏览
mark,不错,谢谢楼主分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马