Java 如果(值==”为什么此块返回为false 请考虑下面的代码: public static void main(String[] args) { String value="abc"; value=""; if(value==""){ System.out.println("blank "+value); } }

Java 如果(值==”为什么此块返回为false 请考虑下面的代码: public static void main(String[] args) { String value="abc"; value=""; if(value==""){ System.out.println("blank "+value); } },java,Java,我不明白为什么if(value==“”)返回为false。==测试引用相等性(它们是否是相同的对象) .equals()测试值是否相等(它们在逻辑上是否“相等”) 因此,请确保您正在测试的内容,并使用精确的方法读取相等运算符=和等于方法之间的差异。在我的jdk9.0.4上,有趣的是,你的代码片段确实打印为空白@kiranB:你是否尝试过将==更改为.equals()。它可以与.equals()配合使用听起来不错。感谢您确认答案,这将有助于其他人在遇到该问题时跟进

我不明白为什么
if(value==“”)
返回为false。

==
测试引用相等性(它们是否是相同的对象)

.equals()
测试值是否相等(它们在逻辑上是否“相等”)


因此,请确保您正在测试的内容,并使用精确的方法

读取相等运算符
=
等于
方法之间的差异。在我的jdk9.0.4上,有趣的是,你的代码片段确实打印为
空白
@kiranB:你是否尝试过将
==
更改为
.equals()
。它可以与.equals()配合使用听起来不错。感谢您确认答案,这将有助于其他人在遇到该问题时跟进