下面的代码测试字符串 myStr 和 newStr 是否包含相同的值。我期望结果是相等的,但令我惊讶的是,该行String newStr = null似乎导致 newStr 将“null”作为实际文本。它是否正确?
我预计它只是被分配了一个对任何内容的引用,导致此时没有任何价值。
String myStr = "java";
char[] myCharArr = {'j', 'a', 'v', 'a'};
String newStr = null; // not an empty reference but assigning the text "null"?
for (char value : myCharArr) {
newStr = newStr + value;
}
System.out.println(newStr == myStr); // results in false: newStr is 'nulljava' and myStr 'java'
Run Code Online (Sandbox Code Playgroud)
请注意,当更改为时,"String newStr = null"您String newStr = new String()确实会得到一个空引用,并且 newStr 最终将只是“java”。
表演时
newStr = newStr + value;
Run Code Online (Sandbox Code Playgroud)
in被转换为字符串,null即。您应该记住的另一件事是比较引用,并且要比较s 本身,您应该使用 s 。newStr"null"==Stringstr1.equals(str2)
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |