==到目前为止,我一直在我的程序中使用运算符来比较我的所有字符串.但是,我遇到了一个错误,将其中一个更改为了.equals(),并修复了该错误.
是==坏?什么时候应该不应该使用它?有什么不同?
我试图理解Java中System.out.println()的工作...在下面的2个代码片段中,为什么答案不同以及为什么它不在println()方法中打印"Hello:"字符串?
public static void main(String[] args) {
String x = "abc";
String y = "abc";
System.out.println("Hello:" + x == y);
System.out.println("x.equals(y): " + x.equals(y));
if(x == y){
System.out.println("Hello:" + x==y);
}
}
Run Code Online (Sandbox Code Playgroud)
答案是:
false
x.equals(y): true
false
Run Code Online (Sandbox Code Playgroud)
对于第二个代码片段:
public static void main(String[] args) {
String x = "abc";
String y = "abc";
System.out.println( x == y);
System.out.println("x.equals(y): " + x.equals(y));
if(x == y){
System.out.println(x==y);
}
}
Run Code Online (Sandbox Code Playgroud)
答案是:
true
x.equals(y): true
true
Run Code Online (Sandbox Code Playgroud)