java - 比较两个字符串文字

标签 java string literals

在与字符串进行比较时,我们可以使用==.equals()

==我们知道它会检查引用,但在 .equals() 中它检查内容。

假设有 2 个字符串

字符串 s="SO"; 字符串 s1="SO";

所以在这种情况下s1==ss.equals(s1)两者都会给出 true。

但是here它给了我错误

所以我假设是 +优先级高于 ==

所以在这种情况下

System.out.println(""+s1==s);

它将被分割为 (""+s1)==s现在 ""+s1 将是一个新字符串,因此新字符串永远不会等于 s所以它的打印错误

我只是想知道我的想法是否正确

最佳答案

""+s1 在堆上创建一个新的字符串对象(因为它没有声明为 final)。因此,引用文献不会相同。

关于java - 比较两个字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22033409/

相关文章:

java - 方法未正确显示

Java 写入 ByteArrayOutputStream 内存泄漏

用于连接两个 Bstr 字符串的 C++ 代码

c++ - 未处理的异常错误、内存冲突

floating-point - 使用泛型时如何使用 float 文字?

vim - 如何防止或替换粘贴的 Vim 宏中的奇怪字符

java - 将自定义 jar 依赖项添加到 android studio 中的模块

java - 尽管使用 Long 原始类型和大整数,但大斐波那契数列的整数溢出

c# - 动态 LINQ 日期时间比较字符串构建 - Linq To Entities

c++ - 如果 d > 255,为什么未指定 std::chrono::day 存储值