这是我的测试代码:
String foo = new String();
System.out.println(foo);
输出为空白并写入新行。由于我是Java的新手,我不知道它是否为“”字符串,或者空值是作为空行处理的。
答案 0 :(得分:23)
字符串初始化时没有字符,或“”内部。
public String() {
this.offset = 0;
this.count = 0;
this.value = new char[0];
}
以上来源取自Java源代码。正如另一张海报指出的那样,引用可以为null或指向一个对象,如果你创建一个String对象并获得一个指向它的引用,那么引用将不为null。
答案 1 :(得分:8)
“null”是变量的值,而不是String的值。 “foo”可以具有null值,但实际的String不能。你所做的是创建一个新的空字符串(如构造函数的文档所示)并将其分配给foo。
答案 2 :(得分:4)
new String()创建一个长度为零的String。如果你只是说“String foo;”作为成员变量,它将被初始化为null。如果你说“String foo;”作为函数变量,它是未定义的,如果您尝试在不指定值的情况下使用它,则会产生编译错误。
答案 3 :(得分:3)
用""
(空字符串)
public class StringTest {
public static void main( String [] args ) {
System.out.println( "".equals(new String()));
}
}
打印:
true
答案 4 :(得分:1)
打印一个新行是因为您调用了println()方法,该方法在打印您传递的任何参数后打印一行。 new String()将返回“”。