gpt4 book ai didi

java - 我不明白这个 ("string"== "string") 例子

转载 作者:行者123 更新时间:2023-12-04 17:07:35 26 4
gpt4 key购买 nike

我在 java 教程页面上找到了这段 java 代码:

if ("progress" == evt.getPropertyName())

http://download.oracle.com/javase/tutorial/uiswing/examples/components/index.html

这怎么行?我认为我们必须在这种情况下使用 equals() 方法 (string.equals("bla"))?我们也可以在这里使用 equals() 吗?会更好吗?有什么想法吗?

编辑:所以如果 equals() 会更好,那么我真的不明白为什么一个严肃的 oracle 教程页面 没有使用它?另外,我不明白为什么它会起作用,因为我认为字符串是一个对象。如果我说 object == object,那就是个大问题。

最佳答案

是的,equals() 肯定会更好更正确。在 Java 中,一个字符串常量池被维护并智能地重用以提高性能。所以这可以工作,但只有在确保 evt.getPropertyName() 返回常量的情况下才能保证。

此外,如果 evt.getPropertyName() 为空,则更正确的版本将是 "progress".equals(evt.getPropertyName())。请注意,String.equals 的实现首先使用 == 作为第一个测试,然后再进行逐个字符的比较,因此与原始版本相比,性能不会受到太大影响代码。

关于java - 我不明白这个 ("string"== "string") 例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7438262/

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