亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

String與StringBuffer在java 中有什么不同

發布時間:2020-12-02 16:23:32 來源:億速云 閱讀:161 作者:Leah 欄目:編程語言

本篇文章為大家展示了String與StringBuffer在java 中有什么不同,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1. String 類

 String的值是不可變的,這就導致每次對String的操作都會生成新的String對象,不僅效率低下,而且大量浪費有限的內存空間。

   String a = "a"; //假設a指向地址0x0001

   a = "b";//重新賦值后a指向地址0x0002,但0x0001地址中保存的"a"依舊存在,但已經不再是a所指向的,a 已經指向了其它地址。

   因此String的操作都是改變賦值地址而不是改變值操作。

2. StringBuffer是可變類,和線程安全的字符串操作類,任何對它指向的字符串的操作都不會產生新的對象。 每個StringBuffer對象都有一定的緩沖區容量,當字符串大小沒有超過容量時,不會分配新的容量,當字符串大小超過容量時,會自動增加容量。

  StringBuffer buf=new StringBuffer(); //分配長16字節的字符緩沖區
  StringBuffer buf=new StringBuffer(512); //分配長512字節的字符緩沖區
  StringBuffer buf=new StringBuffer("this is a test")//在緩沖區中存放了字符串,并在后面預留了16字節的空緩沖區。

3.StringBuffer

  StringBuffer和StringBuilder類功能基本相似,主要區別在于StringBuffer類的方法是多線程、安全的,而StringBuilder不是線程安全的,相比而言,StringBuilder類會略微快一點。對于經常要改變值的字符串應該使用StringBuffer和StringBuilder類。

1)首先String、StringBuffer、StringBuilder在JDK中都被定義為final類,這意味著他們不可以被繼承。

2)String最常見,與StringBuffer相比,String的性能較差,因為對String類型進行改變的時候都會重新生成一個新的String對象,這在字符串拼接操作時很明顯,因此內容經常改變的字符串不應該使用String,如果不考慮多線程,則應使用StringBuilder。

3)StringBuffer生成一個對象后,在進行字符串拼接操作時,調用append方法即可,不會產生新的對象,僅對對象本身進行操作,性能比String要高。另外StringBuffer是線程安全的,因此適合在多線程中使用,也正因為如此,速度跟StringBuilder相比會比較慢。

4)StringBuilder的使用方法跟StringBuffer類似,但其是非線程安全的,因此一般常用于單線程,效率比StringBuffer高。

上述內容就是String與StringBuffer在java 中有什么不同,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

哈巴河县| 饶阳县| 思茅市| 西丰县| 资中县| 大荔县| 逊克县| 巴彦县| 河津市| 延长县| 安陆市| 遵化市| 衡阳县| 诸城市| 松江区| 兴隆县| 西林县| 长子县| 大竹县| 泗阳县| 习水县| 时尚| 彭州市| 门头沟区| 邓州市| 黔东| 东平县| 井陉县| 漳浦县| 巩留县| 石台县| 平舆县| 平原县| 永年县| 斗六市| 朝阳市| 万全县| 临潭县| 盐津县| 渝北区| 象山县|