java - 在java字符串中得到错误的输出,并且==符号

标签 java

我有什么,

假设我正在创建两个如下所示的对象,

String s1 = "abc";
String s2 = s1;

System.out.println("== comparison "+ s1==s2);

我期望输出是

== comparison true

但我明白了

false

问题是什么?

我没有得到预期的输出。

问题 为什么它与预期的输出不匹配。

请回复并解释为什么会这样。

提前致谢 托菲克·汗

最佳答案

因为operator precedence .

+ 运算符的优先级高于 ==

因此,您可以将 "== Comparison "+ s1 的串联与 s2 进行比较。由于字符串是不可变的,因此会创建一个包含 "== Comparison abc" 的新字符串实例,并且该实例永远不能与 s2 相同,因为 s2 仍然引用 "abc"

用这个代替

"== comparison " + (s1 == s2)

关于java - 在java字符串中得到错误的输出,并且==符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20991495/

相关文章:

java - 存在于多个目录中的实体的 Hibernate 注释

Java 检查 boolean 值是否为空

java - 如何在不中断java程序其余部分的情况下中断while循环?

java - AndroidPlot:检测点上的触摸事件

java - 使用 JMenuItem 打开 JInternalFrame

java - 如何为原始 JSON + JSON(B) PostgreSQL 实现 Hibnernate 类型

java - Kryo:readClassAndObject/ReadObject 和 WriteClassAndObject/WriteObject 之间的区别

java - 如何在 ListView 项目的对话框上显示自定义消息

java - 带有 MockMvcBuilders 的 SpringBootTest 独立设置没有加载我的 ControllerAdvice 尽管设置了它

java - 使用 Java Rally Rest API 将 200 多个测试用例添加到测试集