簡體   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