代码
public static void main(String[] args) {
Integer c = new Integer( 100);
Integer d = new Integer(100);
System.out.println(c == d); //false 1)
Integer a = 100 ;
Integer b = 100;
System.out.println(a == b); // true 2)
Integer e = 130;
Integer f = 130;
System.out.println(e == f); //false 3)
}
为什么 c==d 是false?
- 这里由于是比较内存地址,所以不相等
为什么 a == b 是 true ?
因为Integer 内部会把-128~127缓存起来
为什么 缓存区域是 -128~127 ?
因为2进制 最大数是127:是2的7次方减1,也就是127 , 而最小的数是-128:由于负数在计算机中是以其补码形式存在
也就是这里是根据二进制的大小存在的
为什么 e == f 是 false?
看上