Java String的默认值为“null”。但是,当我实例化字符串时,它似乎是一个空字符串。有人可以解释一下吗?
class Stuff
{
String a;
String b = new String();
}
class Demo
{
public static void main( String[] args )
{
Stuff s = new Stuff();
System.out.println( s.a );
System.out.println( s.b );
if( s.b.equals( "" ) )
{
System.out.println( "true" );
}
}
}
答案 0 :(得分:2)
答案 1 :(得分:2)
在java中,默认字符串或设置为null的字符串没有值。通过使用“”或new String()
设置字符串,它将创建String类的新实例。用“”或new String()
启动的字符串只是准备使用的字符串。我想你可以把它想象成一个杯子。如果某些东西是空的,你没有杯子,但如果这个字符串之类的东西被启动为new String()
或“”你现在有一个空杯子。
答案 2 :(得分:0)
嗯,字符串b
不再是null
,因为您创建了String
并将其分配给变量。
如果您使用String
的默认构造函数,则会得到一个空的String
:
public String()
初始化一个新创建的String对象,使其代表一个 空字符序列。请注意,使用此构造函数是 因为字符串是不可变的,所以不必要。
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#String()