62,614
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String... args) {
String str = args[0];
System.out.println(str.intern() == str);
}
}
hotspot1.7和之前的版本运行结果就不一样
又如
public static void main(String[] args) {
Integer a = 1000;
Integer b = 1000;
System.out.println(a == b);
Integer c = 1001;
Integer d = 1001;
System.out.println(c == d);
Integer e = 20000;
Integer f = 20000;
System.out.println(e == f);
}
hotspot1.6中上面的代码可以运行出全部为true的结果,或部分false部分true的结果
----------------
不过,这都是些无关紧要的问题,这样的代码也几乎不会出现在程序里,so,纯java的话基本可以平滑升级。但如果程序里有直接操作字节码的,印象中hotspot1.7开始改变了字节码验证规则,部分动态生成的类可能会抛错,具体版本忘记了。。