Java 比较128下的2个整数
结果是正确的,但是:Java 比较128下的2个整数,java,Java,结果是正确的,但是: Integer a = 127; Integer b = 127; System.out.println(a == b); 结果是错误的。为什么?在Java中不应该以这种方式比较对象。当比较它们时,如a==b,比较的是引用,而不是值 您应该使用equals方法 Integer a = 128; Integer b = 128; System.out.println(a == b); 如果您问为什么128以下的整数会出现这种
Integer a = 127;
Integer b = 127;
System.out.println(a == b);
结果是错误的。为什么?在Java中不应该以这种方式比较对象。当比较它们时,如
a==b
,比较的是引用,而不是值
您应该使用equals
方法
Integer a = 128;
Integer b = 128;
System.out.println(a == b);
如果您问为什么128以下的整数会出现这种情况:Java使用池来处理小值。因此,128以下的所有整数不创建新实例,而是使用“池”缓存实例
这个问题其实是有人问过的。阅读以下文章:
- 在Java中,不应该以这种方式比较对象。当比较它们时,如
a==b
,比较的是引用,而不是值
您应该使用equals
方法
Integer a = 128;
Integer b = 128;
System.out.println(a == b);
如果您问为什么128以下的整数会出现这种情况:Java使用池来处理小值。因此,128以下的所有整数不创建新实例,而是使用“池”缓存实例
这个问题其实是有人问过的。阅读以下文章: