在JAVA中字符串的表示有三種方式 ?String? StringBuilder? StringBuffer .
String是不可變的字符串,它的底層是一個用final修飾的字符數組
當我們做拼接字符串操作的時候:
String str = “you”;
Str = str+”win”;
底層是這樣的:
Str剛開始指向堆內存中的“you”,拼接字符串“win”的時候又開辟了兩塊塊內存空間一塊保存“win”,一塊保存拼接以后生成的字符串“ you win”并且str指向拼接以后的字符串,在這個過程中一共占用了三塊內存空間,所以效率是非常低下的。
?
StringBuilder?和?StringBuffer都繼承于:AbstractStringBuilder
他們的底層使用的是沒有用final修飾的字符數組:char[]
所以在做字符串拼接的時候就在原來的內存上進行拼接,不會浪費內存空間。
StringBuilder和StringBuffer的區別是
StringBuilder是線程不安全的,它的執行效率比StriingBuffer要高
StringBuffer是線程安全的,它的執行效率比StringBuilder要低
?
總結:
1.String字符串是不可變的。
2.在修改字符串操作比較多的時候用StringBuilder或StringBuffer.
在要求線程安全的情況下用StringBuffer
在不要求線程安全的情況下用StringBuilder
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。