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