文章出處

文章列表
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.如果對字符串進行修改。。。但是無法對字符串進行修改,系統會先掃描常量區有沒有修改之后的值,如果有,就直接返回,如果沒有,就開辟新的空間返回。
文章列表
全站熱搜