源码:
package com.xiao.switchs;
public class Demo {
public static void main(String[] args) {
String name="小小";
//JDK7的新特性,表达式结果可以是字符串
switch (name){
case "小夏":
System.out.println("傻子");
case "小小":
System.out.println("小小");
}
}
}反编译.class文件的代码
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.xiao.switchs;
public class Demo {
public Demo() {
}
public static void main(String[] args) {
String name = "小小";
byte var3 = -1;
switch(name.hashCode()) {
case 753376:
if (name.equals("小夏")) {
var3 = 0;
}
break;
case 754144:
if (name.equals("小小")) {
var3 = 1;
}
}
switch(var3) {
case 0:
System.out.println("傻子");
case 1:
System.out.println("小小");
default:
}
}
}可以仔细看出即使JDK7的新特性支持字符串,但是从反编译的结果可以看出是通过hashCode()来处理成数字
反编译的教程
:
1.先找到.class文件所在的位置:在file->project structure中选择project看到project compiler output中有一个路径,这个路径就是编译生成.class文件存放的位置
2.再找到.java文件所在的位置:在包或者类中右键选择show in explorer可以打开其在文件夹中的位置
3.把.class文件拖到.java文件夹里面,这样在IDEA中就能出现.class文件了,就可以看了
微信扫码关注
更新实时通知