国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > String、StringBuffer、StringBuilder有什么區別?

String、StringBuffer、StringBuilder有什么區別?

來源:千鋒教育
發布人:wjy
時間: 2022-09-20 14:20:23 1663654823

  1.String

  String類是不可變的,所謂不可變意思就是創建一個類后任何對String的改變都會引發新的String對象的生成;

  讓我們舉個例子來看看就明白了:

  String str ="abc";

  str = str +"def";//這一步jvm會再次創建一個String對象

  第二次其實jvm又生成了一個String類,而不是直接覆蓋原來的"abc",因此我們說String類是不可改變類。這一種特性會帶來一個問題,每次拼接都要創建都要創建一次對象,當我們要拼接大量字符串的時候,效率會變得非常非常慢。

String、StringBuffer、StringBuilder有什么區別?

  2.StringBuffer

  StringBuffer不同于String的是StringBuffer是可變的,一樣的我們來舉個例子看看:

  StringBuffer sb =new StringBuffer("abc");

  sb.append("efg");//并沒有創建一個新的對象

  這里第二步并沒有產生一個新的對象,而是在原來的基礎上追加字符串,這種方式在拼接字符串的時候效率肯定比String要高得多。

  3.StringBuilder

  StringBuffer和StringBuilder類的區別也是如此,他們的原理和操作基本相同,區別在于StringBuffer支持并發操作,線性安全的,適合多線程中使用。

  StringBuilder不支持并發操作,線性不安全的,不適合多線程中使用。新引入的StringBuilder類不是線程安全的,但其在單線程中的性能比StringBuffer高。

  點評:上面大概介紹了String、StringBuffer、StringBuilder的區別,那么我們要處理字符串的時候要選擇哪個呢?總結如下:

  1.如果要操作少量的數據用 String

  2.單線程操作字符串緩沖區下操作大量數據用StringBuilder

  3.多線程操作字符串緩沖區下操作大量數據用StringBuffer

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT