String字串物件的建立及管理

2021-06-25 23:21:21 字數 1159 閱讀 9829

在建立字串,我們可以用到new string("*****")或者直接=「******」兩種形式,兩種形式有著很大的區別。

1.單獨使用""引號建立的字串都是常量,編譯期就已經確定儲存到string pool中;

2.使用new string("")建立的物件會儲存到heap中,是執行期新建立的;

3.使用只包含常量的字串連線符如"aa" + "aa"建立的也是常量,編譯期就能確定,已經確定儲存到string pool中;

4.使用包含變數的字串連線符如"aa" + s1建立的物件是執行期才建立的,儲存在heap中;

5:只用""引號建立的字串建立乙個或者零個物件,比如string a="123",如果string pool不存在"123",則建立乙個string物件"123"放到string pool中,如果存在,則a的引用直接指向它。

6:用new關鍵字至少建立乙個物件,比如 string a=new string("123")首先會建立乙個物件儲存在heap中,如果string pool中不純在"123"則建立乙個string物件"123"放到string pool中,如果存在,則不建立。

7:string.intern()方法返回字串物件的規範化表示形式,當呼叫 intern 方法時,如果池已經包含乙個等於此 string 物件的字串(該物件由 equals(object) 方法確定),則返回池中的字串。否則,將此 string 物件新增到池中,並且返回此 string 物件的引用。它遵循對於任何兩個字串 s 和 t,當且僅當 s.equals(t) 為 true 時,s.intern() == t.intern() 才為 true。

string a="123";

string b="123";

string c=new string("123");

string tem="12";

string d=tem+"3";

system.out.println(a==b);//true

system.out.println(a==c);//false

system.out.println(a==d);//false

system.out.println(a==d.intern());//true

system.out.println(c==d);//false

字串的定義 String類建立的物件

1.定義字串的4種方法 public class teststring string s new string chararr system.out.println s 三.new string 字元陣列,開始下標,轉換幾個 char chararr string s new string char...

String詳解 建立字串

字串常用構造方法 public class 2 string s3 new string bytes 把變數名字放進來,固定寫法 system.out.println s3 abcd string已經重寫了tostring方法 4string s4 new string bytes,1,2 陣列名,...

C 字串物件(string)

這次去北京理工參加複試,當時的上機題目的第2題是一道字串有關的題目 大致的題目是這樣的,在乙個已有序列中有eric,machel,peter,要求插入 jhon,以後按照字母順序顯示排好,並且可以多次輸入,如果有相同的提示重新輸入。當時的我對string類並不了解,所以用的是鍊錶和動態生成字串的方式...