创建对象之枚举

有些对象根据需求需要保证其唯一性,此时需要用单例模式,单例模式采用枚举是最好的解决方式

package com.liangliang.coreJava.OOP.eum;

public enum Elvis
{
INSTANCE("Solar","25");
private final String name;
private final String age;
private Elvis(String name,String age){
this.name=name;
this.age =age;
}
public void leaviBuilding(){
System.out.println("name="+name+",age="+age);
}
public static Elvis getInstance(){
return Elvis.INSTANCE;
}
}

1、代码简单
2、可以防止序列化时破坏单例
3、线程安全,不需要考虑双重锁的问题

通过反编译后代码我们可以看到,public final class T extends Enum,说明,该类是继承了Enum类的,
同时final关键字告诉我们,这个类也是不能被继承的。当我们  使用enmu来定义一个枚举类型的时候,编
译器会自动帮我们创建一个final类型的类继承Enum类,所以枚举类型不能被继承,我们看到这个类中有几
个属性和方法。
        public final class T extends Enum
    {
        private T(String s, int i)
        {
            super(s, i);
        }
        public static T[] values()
        {
            T at[];
            int i;
            T at1[];
            System.arraycopy(at = ENUM$VALUES, 0, at1 = new T[i = at.length], 0, i);
            return at1;
        }

        public static T valueOf(String s)
        {
            return (T)Enum.valueOf(demo/T, s);
        }

        public static final T SPRING;
        public static final T SUMMER;
        public static final T AUTUMN;
        public static final T WINTER;
        private static final T ENUM$VALUES[];
        static
        {
            SPRING = new T("SPRING", 0);
            SUMMER = new T("SUMMER", 1);
            AUTUMN = new T("AUTUMN", 2);
            WINTER = new T("WINTER", 3);
            ENUM$VALUES = (new T[] {
                SPRING, SUMMER, AUTUMN, WINTER
            });
        }
    }
    因为static类型的属性会在类被加载之后被初始化,当一个Java类第一次被真正使用到的时候静态资源被初始化、Java类的加载和初始化过程都是线程安全的。
    所以,创建一个enum类型是线程安全的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,465评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,561评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,988评论 0 11
  • 说到离婚,大多数人都会劝女人再忍一忍,离婚之后很难找到更好的。这是真的吗?为什么离异女性很难再找到更好的归宿呢? ...
    白衣梧桐阅读 815评论 2 4
  • 我是胆小鬼,我在召唤蜘蛛侠。 世上怎么会有如此神奇的物种。有的扁瘦,有的圆胖,有的腿短,有的腿长。它们无处不在,在...
    风筝simy阅读 322评论 0 0

友情链接更多精彩内容