String類型的null,String(),String("");之間有什么區別?
String?s; String?s1=null; String?s2=new?String(); String?s3=new?String("");
比如說定義的這四個變量之間有什么不同?
String?s; String?s1=null; String?s2=new?String(); String?s3=new?String("");
比如說定義的這四個變量之間有什么不同?
2017-03-29
舉報
2017-03-30
當聲明為String??s1時;
聲明一個字符串對象,分配了一個內存空間,沒有進行初始化,沒有存入任何對象。
當聲明為String??s2?=?null時;
聲明一個字符串對象,分配了一個內存空間,進行初始化,存入了一個空對象,值為空。
當聲明為String??s3?=?new??String 時;
聲明一個字符串對象,分配了一個內存空間,沒有進行初始化,是在堆中創建一個字符串對象,
并把引用放在棧中指向他的首地址。
當聲明為String??s4?=?new??String("" )?時;
聲明一個字符串對象,分配了一個內存空間,初始化,存了一個字符串對象
是在堆中創建一個字符串對象,并把引用放在棧中指向他的首地址。
2017-03-30
String s ;該語句表示只是聲明了一個引用變量,但是并沒有初始化引用,所以對變量s的任何操作(除了初始化賦值外) 都將引發異常.
String s=null; 表示未申請任何內存資源,即些語句表示聲明了一個引用變量并初始化引用,但是該引用沒有指向任何對象.但可以把它作為參數傳遞或其它使用,但是不能調用它作為對象的方法