如何在 Java 中为字符串分配空引用

Pie*_*ter 0 java string null

下面的代码测试字符串 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”。

Pie*_*345 5

表演时

newStr = newStr + value;
Run Code Online (Sandbox Code Playgroud)

in被转换为字符串,null即。您应该记住的另一件事是比较引用,并且要比较s 本身,您应该使用 s 。newStr"null"==Stringstr1.equals(str2)