最近搜索

Integer 比较 有一个问题

浏览:32
管理员 2025-08-20 16:11


int  Integer  比较 有一个问题    数值比较 数值比较

public  static  void main(String []  s){



Integer b1 = 100;
Integer b2 = 100;
System.out.println(b1==b2);//true   -128到127之间的数 会用缓存。 同一个对象

Integer b3 = 128;
Integer b4 = 128;
System.out.println(b3==b4);//出售false   -128到127之间的数 会用缓存。 超过了 不是一个对象



   Integer b1 = new Integer(100);
   Integer b2 = new Integer(100);
   System.out.println(b1==b2);//出售false  对比的是内存地址

   Integer b3 = 128;
   Integer b4 = 128;
   System.out.println(b3==b4);//出售false   -128到127之间的数 会用缓存。

   System.out.println(b3.equals(500));
   //建议使用 .equals 对比。
   // 或者使用int
   int a = b1.intValue();

}



Integer b1 = new Integer(2);
System.out.println(b1==1);  // false
System.out.println(b1==2);  // true
System.out.println(b1==3);  // false

代码行为解释
‌对象创建‌:new Integer(2)显式创建了一个新的Integer对象,值为2

‌比较操作‌:当Integer对象与int基本类型使用==比较时,会发生‌自动拆箱‌:

Java会自动调用b1.intValue()将Integer对象转换为int值
然后比较的是两个int基本类型的值是否相等
‌输出结果分析‌:

b1==1:比较2和1,结果为false
b1==2:比较2和2,结果为true
b1==3:比较2和3,结果为false


联系站长

站长微信:xiaomao0055

站长QQ:14496453