Given:
public class Equal {
public static void main(String[] args) {
String str1 = "Java";
String[] str2 = {"J", "a", "v", "a"};
String str3 = "";
for (String str : str2) {
str3 = str3 + str;
}
boolean b1 = (str1 == str3);
boolean b2 = (str1.equals(str3));
System.out.print(b1 + ", " + b2);
}
}
What is the result?
A.
true, false
B.
false, true
C.
true, true
D.
false, false
題解
程式執行到第10行時,str1和str3變數所參考到的都是「Java」字串物件,只是是不同的字串物件。因此第10行判斷參考是否相同的「==」運算子,會得到false的結果。而第11行判斷邏輯是否相同的「equals」方法會得到true的結果。