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哈希算法生成的一串数字进而被识别。

浙公网安备 33010602011771号