int a=10;
int b=10;
System.out.println(a==b)//true
int c=128;
int d=128;
System.out.println(c==b)//false
为什么这里为false?
总所周知==在比较数值时是比较的内存地址
解答:因为Integer在常量池中存储的范围是【-128>>127】 当超过了这个范围后,就会在堆中创建对象来存储,所以两者的地址会不一致。
int a=10;
int b=10;
System.out.println(a==b)//true
int c=128;
int d=128;
System.out.println(c==b)//false
为什么这里为false?
总所周知==在比较数值时是比较的内存地址
解答:因为Integer在常量池中存储的范围是【-128>>127】 当超过了这个范围后,就会在堆中创建对象来存储,所以两者的地址会不一致。