繁体   English   中英

Java字符串的默认值:null与“”

[英]Default value of Java String: null vs “”

Java字符串的默认值为'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" );
       }
    }
}

String()构造函数Javaodc说,

初始化一个新创建的String对象,使其代表一个空字符序列。 注意,由于字符串是不可变的,因此不需要使用此构造函数。

符合您观察到的行为。

在Java中,默认字符串或设置为null的字符串没有值。 通过使用“”或new String()设置字符串,它将创建String类的新实例。 以“”或new String()开头的字符串只是准备使用的字符串。 我想你可以把它当作杯子。 如果某物为null,则没有杯子,但是如果某物(例如此字符串)以new String()或“”的形式初始化,则您现在有一个空杯子。

好吧,字符串b不再为null ,因为您创建了一个String并将其分配给该变量。

如果使用默认的String构造函数,则会得到一个空String

公共String()

初始化一个新创建的String对象,使其代表一个空字符序列。 注意,由于字符串是不可变的,因此不需要使用此构造函数。

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#String()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM