String類的理解

2021-10-22 13:56:02 字數 672 閱讀 8530

實際上string是在棧中引用string物件位址,string物件是引用byte[ ]陣列位址

首先每次直接建立「」字串都是在字串常量池開闢記憶體(其實也是new出來的,但是儲存機制不同),如果後續用到相同的字面值則直接使用相同位址。所以直接建立出來的「」字串,只要字面值相同,則位址相同。

其次 通過new出來的的字串,是在堆中直接開闢空間,每個new都會使用新的記憶體空間。所以只要是new出來的字串,位址必然不同。

因為string不是基本型別,所以用的是引用位址。但是比較特殊的是

string str1 =

newstring

("abc");

string str2 = str1;

str2 =

newstring

("cba");

system.out.

println

(str1)

;//abc

str1和str2公用乙個位址,但是str1為什麼沒變呢?字串是常量,一旦建立不能更改,所以當我們對str2重新賦值時,會重新new出乙個string來給str2,那麼str2的改變就與str1無關了。

String類賦值的理解

string str 123 str abc 怎麼理解以上 先看下下這個例子 int a 5 a 4 這段 的意思是,申請乙個記憶體單元,命名為a,同時把5存到記憶體單元,然後又把4存到記憶體單元內,也就是說現在名為a 的記憶體單元的內容在被重新賦值後修改了 string str 123 str a...

String類的方法理解,

1.string 類的 indexof 方,如果查詢單個字元,如果字串有多個相同的字元只要找到第乙個就結束 2.1 當對字串進行修改的時候,需要使用 stringbuffer 和 stringbuilder 類。和 string 類不同的是,stringbuffer 和 stringbuilder ...

深入理解String類

string類代表的就是字串,string類物件建立之後不可變。string str hello 方式1 string str2 newstring hello 方式2 char array 方式3 string str3 newstring array string str1 hello stri...