switch小知识

switch

package struct;

public class SwitchDemo2 {
    public static void main(String[] args) {
        String name = "月曦";
        //JDK7的新特性,表达式结果可以是字符串!!!
        //字符的本质还是数字
        //反编译 java---class(字节码文件)---反编译(IDEA)
        switch (name) {
            case "月曦":
                System.out.println("月曦");
                break;
            case "月熙":
                System.out.println("月熙");
                break;
            case "月希":
                System.out.println("月希");
                break;
            default:
                System.out.println("\n" +
                        "You're wrong");
        }
    }
}


通过File-->Project Structure找到

Project Setting-->Project-->Project compiler output下面的路径

如:

C:\Users\汐月曦\Desktop\狂神模式\MarkDown学习\code\JavaSE\out

在计算机我的电脑(此电脑)中复制上面的out路径打开,找到刚才编译的类的class文件(字节码文件)复制到刚才编写的类的同一目录下,字节码文件点击右键打开方式选择IDEA打开

如下:

//反编译之后的文件
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package struct;

public class SwitchDemo2 {
    public SwitchDemo2() {
    }

    public static void main(String[] args) {
        String name = "月曦";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 841732:
            if (name.equals("月希")) {
                var3 = 2;
            }
            break;
        case 843998:
            if (name.equals("月曦")) {
                var3 = 0;
            }
            break;
        case 846737:
            if (name.equals("月熙")) {
                var3 = 1;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("月曦");
            break;
        case 1:
            System.out.println("月熙");
            break;
        case 2:
            System.out.println("月希");
            break;
        default:
            System.out.println("\nYou're wrong");
        }

    }
}

对象(这里是“月曦”)的本质实际上就是通过hashCode哈希算法生成的一串数字进而被识别。

posted @ 2021-12-03 22:04  熙月希  阅读(137)  评论(0)    收藏  举报