Java128陷阱
程序员文章站
2024-03-07 13:26:15
...
Integer a = 1000;
Integer b = 1000;
if(a == b) {
System.out.println("相等");
}
//不会输出“相等”
Integer a = 127;
Integer b = 127;
if(a == b) {
System.out.println("相等");
}
//会输出“相等”
警告:
自动装箱规范要求,boolean、byte、char<=127, -128<= short、int <=127被包装到固定的对象中。也就是说:刚才a和b都等于127,介于-128~127之间,所以他俩其实指向的是同一个对象,所以用==比较的话,肯定是true。