java语言基础之enum

java语言中一个类型叫做enum,是一个枚举类型,C、C++中也都有,是一种方便我们定义常量的类!说得再多都显苍白,让我们来看源码,编译器是怎么解释的!

先看demo:

public enum Test {
    GetSessionId("getSessionId"), GetCheckCode("getCheckCode");// 调用两次构造方法
    private final String action;

    private Test(String action) {
        this.action = action;
    }

    public String getAction() {
        return action;
    }

    public static void main(String[] args) {
        String string = GetSessionId.getAction();// 得到值
        if ("getSessionId".equals(string)) {
            System.out.println(true);
        }
    }
}

再看javap,反编译.class的结果:

public final class effective_java.Test extends java.lang.<strong><span style="font-size:18px;background-color: rgb(51, 51, 153);">Enum<effective_java.Test></span></strong> {

        public <span style="font-size:18px;"><strong style="background-color: rgb(102, 0, 204);">static final</strong></span> effective_java.Test GetSessionId;
        public <strong><span style="font-size:18px;background-color: rgb(102, 0, 204);">static final</span></strong> effective_java.Test GetCheckCode;

        static {
        };

        public java.lang.String getAction();

        public static void main(java.lang.String[]);
    
        public static effective_java.Test[] values();
    
        public static effective_java.Test valueOf(java.lang.String);
    }
现在看来enum简单多了吧,enum就是一个继承自Enum,封装了常量,并提供一些方法的类。但是如何对性能要求高的话,还是不要使用enum,虽然写起来简单,但是是用性能换来的!

你可能感兴趣的:(java语言基础之enum)