Avatar ·

Java中==和===的区别

大家好!我一直搞不清楚Java中的比较运算符。我知道JavaScript中有通过===进行的严格比较,但Java中似乎没有这个运算符。尝试写===时,编译器会报错。

我试过用==来比较字符串,但得到了意想不到的结果。例如,下面这段代码:

String a = new String("test");
String b = new String("test");
System.out.println(a == b); // false
System.out.println(a.equals(b)); // true

为什么==返回false,如果字符串相同?我原本以为==会比较内容,就像在JavaScript中一样。我查阅了文档——在Java中,==比较的是对象的引用,而不是它们的值。对于字符串,需要使用equals()。

但问题是:Java中是否有类似JavaScript中严格比较===的对应物?还是唯一的方法就是使用equals()?