溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

String,StringBuilder,StringBuffer的區別

發布時間:2020-07-15 00:10:40 來源:網絡 閱讀:1109 作者:熊熊爬樓梯 欄目:編程語言

在JAVA中字符串的表示有三種方式 ?String? StringBuilder? StringBuffer .

String是不可變的字符串,它的底層是一個用final修飾的字符數組

String,StringBuilder,StringBuffer的區別

當我們做拼接字符串操作的時候:

String str = “you”;

Str = str+”win”;

底層是這樣的:

String,StringBuilder,StringBuffer的區別

Str剛開始指向堆內存中的“you”,拼接字符串“win”的時候又開辟了兩塊塊內存空間一塊保存“win”,一塊保存拼接以后生成的字符串“ you win”并且str指向拼接以后的字符串,在這個過程中一共占用了三塊內存空間,所以效率是非常低下的。

?

StringBuilder?和?StringBuffer都繼承于:AbstractStringBuilder
他們的底層使用的是沒有用final修飾的字符數組:char[]


String,StringBuilder,StringBuffer的區別


所以在做字符串拼接的時候就在原來的內存上進行拼接,不會浪費內存空間。

StringBuilder和StringBuffer的區別是

StringBuilder是線程不安全的,它的執行效率比StriingBuffer要高

StringBuffer是線程安全的,它的執行效率比StringBuilder要低

?

總結:

1.String字符串是不可變的。

2.在修改字符串操作比較多的時候用StringBuilder或StringBuffer.

在要求線程安全的情況下用StringBuffer

在不要求線程安全的情況下用StringBuilder


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女