switch和反编译
代码如下:
package com.can.www.com.can.www;
public class switchTest {
public static void main(String[] args) {
String name = "tom";
//jdk7的新特性,表达式的值可以是字符串
//字符的本质还是数字
//反编译 java------class(字节码文件)-------反编译(IDEA)
switch (name){
case "tom":
System.out.println("I am tom");
break; //break是防止case穿透现象
case "jerry":
System.out.println("I am jerry");
break;
default:
System.out.println("nothing");
}
}
}
Idea反编译步骤
- 打开project structure,找到输出
2. 在输出文件目录下找到对应字节码文件,拷贝到java文件目录下
3 从idea中打开.class文件即可
反编译代码如下:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.can.www.com.can.www;
public class switchTest {
public switchTest() {
}
public static void main(String[] args) {
String name = "tom";
byte var3 = -1;
switch(name.hashCode()) {
case 115026:
if (name.equals("tom")) {
var3 = 0;
}
break;
case 101015326:
if (name.equals("jerry")) {
var3 = 1;
}
}
switch(var3) {
case 0:
System.out.println("I am tom");
break;
case 1:
System.out.println("I am jerry");
break;
default:
System.out.println("nothing");
}
}
}
结论:字符的本质还是数字
反编译也可以上百度下载一些工具~