您的位置:首页 >Java中如何判断两个变量是否相等
发布于2026-02-04 阅读(0)
扫一扫,手机访问
Java中比较变量相等需区分值相等与引用相等:基本类型用==比较值,引用类型优先用equals()比较内容,避免直接用==;包装类因缓存机制导致==结果不可靠;自定义类须重写equals()和hashCode()。

Java中比较两个变量是否相等,关键在于区分“值相等”和“引用相等”,并根据变量类型(基本类型或引用类型)选择合适的方式。
int、double、char、boolean 等基本类型变量,直接用 == 判断数值是否相同:
int a = 5; int b = 5;,a == b 返回 trueMath.abs(a - b) < EPSILON 判断近似相等String、Integer、ArrayList 等引用类型,== 比较的是两个变量是否指向**同一个对象(内存地址)**,不是内容是否相同:
String s1 = "hello"; String s2 = "hello"; → s1 == s2 可能为 true(字符串常量池优化)String s1 = new String("hello"); String s2 = new String("hello"); → s1 == s2 一定为 falses1.equals(s2) 返回 trueObjects.equals(s1, s2) 更安全Integer、Byte、Character 等包装类有缓存机制(如 Integer 缓存 -128 ~ 127),导致部分值用 == 比较会返回 true,但这不是可靠行为:
Integer a = 100; Integer b = 100; → a == b 是 true(命中缓存)Integer c = 200; Integer d = 200; → c == d 很可能是 false(超出缓存范围).equals() 或 Objects.equals() 判断逻辑相等,不依赖 ==如果自己写的类需要按业务字段判断是否相等,必须重写 equals() 方法(通常也需同步重写 hashCode()):
return Objects.equals(this.id, other.id) && Objects.equals(this.name, other.name);
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9