为什么我们不能使用 (==) 而不是 .equals() 方法来比较字符串对象?

sub*_*del 0 java string

Box b1 = new Box();
Box b2 = b1;
Run Code Online (Sandbox Code Playgroud)

这里 b1 和 b2 指的是同一个对象。因此,在 2 个 String 对象的情况下,为什么我们不能使用==它们而不是.equals()方法来比较它们。

小智 6

真的没有区别。当您==用来比较对象时,您是在比较它们的内存地址,而不是它们的值。在您的示例中,doingb1 == b2将返回 true,因为它们是同一个对象。但是,如果您改为这样做:

Box b1 = new Box();
Box b2 = new Box();
Run Code Online (Sandbox Code Playgroud)

现在,如果您将它们与==它进行比较,尽管对象完全相同,但它将返回 false。字符串也是如此。