gpt4 book ai didi

java - == 运算符对 String 有什么用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:45 26 4
gpt4 key购买 nike

在 Java 中,如果要检查两个字符串是否相等,即它们的值是否相同,他/她需要使用 equals 方法。例如。 :

String foo = "foo"; 
String bar = "bar";
if(foo.equals(bar)) { /* do stuff */ }

如果要检查引用是否相等,他需要在两个字符串上使用 == 运算符。

if( foo == bar ) { /* do stuff */ }

所以我的问题是 == 运算符是否用于 String 类?为什么要比较字符串引用?

编辑:问的是:如何比较字符串? == 是如何工作的? equals 方法如何工作?

我想问的是 == 运算符对 Java 中的 String 类有什么用处?不重载它以进行深入比较的理由是什么?

最佳答案

想象一个线程安全的 Queue<String>充当生产者线程和消费者线程之间的通信 channel 。使用特殊的 String 似乎是完全合理的表示终止。

// Deliberate use of `new` to make sure JVM does not re-use a cached "EOT".
private static final String EOT = new String("EOT");
...
// Signal we're done.
queue.put(EOT);


// Meanwhile at the consumer end of the queue.
String got = queue.get();
if ( got == EOT ) {
// Tidy shutdown
}

请注意,这将有弹性:

queue.put("EOT");

因为"EOT" != EOT尽管 "EOT".equals(EOT)将是 true .

关于java - == 运算符对 String 有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28775698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com