深入理解new String

2022-05-10 18:30:18 字數 1041 閱讀 8225

一、 引言

new string("hello")這樣的建立方式,到底建立了幾個string物件?

二、 分析

1 string s1 = "helloworld";

2 string s2 = new string("helloworld");

3 string s3 = "hello";

4 string s4 = "world";

5 string s5 = "hello" + "world";

6 string s6 = s3 +s4;

78 system.out.println(s1 ==s2);

9 system.out.println(s1 ==s5);

10 system.out.println(s1 ==s6);

11 system.out.println(s1 ==s6.intern());

12 system.out.println(s2 == s2.intern());//false true false true false

1. string s1 = "helloworld";

去常量池查詢,有則指向該位址,沒有則在常量池建立後指向該位址。

常量池:jdk7以後,從方法區,移到了堆中。

2. string s2 = new string("helloworld"); 

3. string s5 = "hello" + "world"

;將"hello" 與 "world" 拼接以後的"helloworld" 賦值給s5

4. string s6 = s3+s4;

等價於 s6 = new string (s3+s4);

三、intern

intern用來返回常量池中的該字串,如果常量池中已經存在該字串,則直接返回常量池中該物件的引用。

否則,在常量池中新建乙個物件,然後 返回引用。

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...