關於string的物件引用

2022-02-23 04:56:59 字數 1572 閱讀 2495

什麼都不說了, 一切都在**裡:

1string

a1 =

"aaa

";  

//在堆中分配"aaa"

2string

a2 =

"aaa

";  

//堆中已有"aaa", 則不再給"aaa"分配新空間,a2指向a1的位址

3string

a3 =

newstring("

aaa"

.tochararray()); 

//new產生新的物件,分配新的空間45

console.writeline(

object

.referenceequals(a1, 

"aaa

")); 

//ture

6console.writeline(

object

.referenceequals(a1, a2));    

//true

7console.writeline(

object

.referenceequals(a1, a3));    

//false89

string

b1 =

"bbb";

1011

string

c1 =

"aaabbb

";        

//定義"aaabbb"

12string

c2 =

"aaa"+

"bbb

";   

//"aaa"和"bbb"都是常量, 合成為"aaabbb"指向c1

13string

c3 =

a1 +

"bbb

";      

//a1是變數, 則給c3分配新的空間

14string

c4 =

a1 +

b1;         

//同上, c4分配新的空間

15string

c5 =

a1 +

b1;         

//同上, c5分配新的空間

1617

console.writeline(

object

.referenceequals(c1, c2));  

//true

18console.writeline(

object

.referenceequals(c1, c3));  

//false

19console.writeline(

object

.referenceequals(c1, c4));  

//false

20console.writeline(

object

.referenceequals(c3, c4));  

//false

21console.writeline(

object

.referenceequals(c5, c4));  

//false

關於String中建立物件的區別

string的建立方式一般有兩種,一種是常見的new string 如string s1 new string ab 另一種是字面量賦值,如string s2 ab 第一種物件的建立方式會建立兩個物件,乙個是new建立的物件,乙個是在字串常量池中建立 ab 字串。第二種方式是直接在字串常量池中建立 ...

String返回引用

string str2 new string str new string 01 str2.intern string str1 str01 system.out.println str2 str1 在jdk 1.7下,當執行str2.intern 時,因為常量池中沒有 str01 這個字串,所以會...

關於js物件引用的小例子

看完下面的 相信對js物件引用又有了新的認識,直接上 1 split 把字串分割成字串陣列2 reverse 會改變陣列本身,並返回原陣列的引用 3var arr1 john split arr1 j o h n 45 var arr2 arr1.reverse arr1 arr2 n h o j ...