文章出處

 1 string str1="aa";
 2 
 3 string str2="aa";
 4 
 5 
 6 str1,str2,變量所指向的堆空間的地址是一樣的。棧空間的內容是不一樣的。
 7 
 8 
 9 
10  //new的作用
11     * 1.開辟合適大小的堆空間或者常量區空間
12     * 2.創建對象
13     * 3.調用構造函數
14     * 4 返回開辟的空間地址
15 string str3 = new string(new char[]{'a','a'});
16 
17 string str4 = new string(new char[]{'a','a'});
18 
19 
20 str3,str4,棧空間的地址和堆空間的地址都是不一樣的。





 

總結:1.創建一個字符串,系統會先掃描常量區(堆空間),有沒有相同值的字符串,如果有,就直接返回對應的常量區(堆空間)地址。
2.如果對字符串進行修改。。。但是無法對字符串進行修改,系統會先掃描常量區有沒有修改之后的值,如果有,就直接返回,如果沒有,就開辟新的空間返回。

文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()