java - 为什么使用 == 比较两个整数有时有效有时无效?

标签 java types comparison

我知道我在使用 == 时比较引用,这不是一个好主意,但我不明白为什么会这样。

Integer a=100;
Integer b=100;
Integer c=500;
Integer d=500;
System.out.println(a == b); //true
System.out.println(a.equals(b)); //true
System.out.println(c == d); //false
System.out.println(c.equals(d)); //true

最佳答案

Java 语言规范说至少 -128 到 127 的包装器对象被 Integer.valueOf() 缓存和重用,自动装箱隐式使用它。

关于java - 为什么使用 == 比较两个整数有时有效有时无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30840071/

相关文章:

java - 巧妙地比较 "the likes"

java - 如何在Eclipse自动生成的 'java'目录下创建 'src'目录?

java - 具有可变输入和一个输出的 Guava 函数

mysql - 比较 MySQL 查询中字符串的值

scala - Scala 中的类型参数化对象

java - 如何在我的泛型方法中限制只接受一种类型?

serialization - 浮点序列化,字典序比较==浮点比较

java - 在 Vaadin GUI 工具包中定期执行方法

java - Spring Security 将 URL 参数传递给身份验证提供程序

java - 为日期对象实现 Parcelable - NullPointerException