成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

StringBuffer和StringBuilder的3個區別

開發 后端
今天,帶大家徹底搞懂 StringBuffer 和 StringBuilder 的幾個區別和它們的應用場景。

StringBuffer 和 StringBuilder 它們都是可變的字符串,不過它們之間的區別是 Java 初中級面試出現幾率十分高的一道題。這么簡單的一道題,在面試過程中卻經常遇到很多求職者說反,搞不清使用場景的情況。

今天,帶大家徹底搞懂 StringBuffer 和 StringBuilder 的幾個區別和它們的應用場景,如果你是大牛,請略過,如果你是菜鳥,或者對這兩個不是很清楚,可以學習一下,也可以為年底的面試加油沖刺。

[[351947]]

先看看 StringBuffer 和 StringBuilder 的類結構吧:

其實很簡單,就是繼承了一個抽象的字符串父類:AbstractStringBuilder。下面我們再來看看它們的三個區別。

區別1:線程安全

StringBuffer:線程安全,StringBuilder:線程不安全。因為 StringBuffer 的所有公開方法都是 synchronized 修飾的,而 StringBuilder 并沒有 StringBuilder 修飾。

StringBuffer 代碼片段:

  1. @Override 
  2. public synchronized StringBuffer append(String str) { 
  3.     toStringCache = null
  4.     super.append(str); 
  5.     return this; 

區別2:緩沖區

StringBuffer 代碼片段:

  1. private transient char[] toStringCache; 
  2.  
  3. @Override 
  4. public synchronized String toString() { 
  5.     if (toStringCache == null) { 
  6.         toStringCache = Arrays.copyOfRange(value, 0, count); 
  7.     } 
  8.     return new String(toStringCache, true); 

StringBuilder 代碼片段:

  1. @Override 
  2. public String toString() { 
  3.     // Create a copy, don't share the array 
  4.     return new String(value, 0, count); 

可以看出,StringBuffer 每次獲取 toString 都會直接使用緩存區的 toStringCache 值來構造一個字符串。

而 StringBuilder 則每次都需要復制一次字符數組,再構造一個字符串。

所以,緩存沖這也是對 StringBuffer 的一個優化吧,不過 StringBuffer 的這個toString 方法仍然是同步的。

區別3:性能

既然 StringBuffer 是線程安全的,它的所有公開方法都是同步的,StringBuilder 是沒有對方法加鎖同步的,所以毫無疑問,StringBuilder 的性能要遠大于 StringBuffer。

總結

所以,StringBuffer 適用于用在多線程操作同一個 StringBuffer 的場景,如果是單線程場合 StringBuilder 更適合。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2012-06-17 13:08:54

Stringstringbuldestringbuffe

2024-03-07 16:12:46

Java字符串線程

2009-06-12 09:52:49

StringStringBuffeJava

2021-02-21 08:19:55

面試StringStringBuffe

2009-08-27 13:50:08

C# StringBu

2010-04-16 15:15:28

思科認證華為3COM認證

2023-01-28 09:52:39

2021-03-15 08:38:42

StringBuffeJava基礎Java開發

2020-10-28 09:50:33

SpringBootJava

2020-06-16 09:30:09

云計算IT公共云

2021-03-01 11:39:34

機器學習深度學習人工智能

2011-10-14 09:53:52

HTML 5

2009-09-07 09:59:07

思科認證CCNA華為認證H3CNE區別

2021-12-30 11:04:04

微軟

2020-04-02 10:18:20

容器Kubernetes云計算

2021-08-17 11:02:24

isEmptyisBlankJava

2013-02-22 13:14:06

WebCSS2.1CSS3+

2014-11-28 09:47:26

Python

2015-09-23 10:00:47

OLTPOLAP

2019-01-14 15:44:11

CoinToken區塊鏈
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天堂资源最新在线 | 91资源在线| 黄色激情毛片 | 国产精品久久久久久久免费大片 | 亚洲国产黄 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 热99| 91av视频在线观看 | 精品国产亚洲一区二区三区大结局 | 成人精品国产 | 亚洲成色777777在线观看影院 | 色婷婷综合久久久中字幕精品久久 | 午夜精品久久久久久不卡欧美一级 | 精品99爱视频在线观看 | 久久久不卡网国产精品一区 | 国产乱码精品一区二区三区五月婷 | 精品一区二区三区四区 | 亚洲视频一区二区三区 | 嫩草视频入口 | 人人射人人插 | 伊人精品视频 | www成人免费视频 | 亚洲午夜在线 | 9久久| 久久99视频免费观看 | 伊人焦久影院 | 成人视屏在线观看 | 国产一区二区三区色淫影院 | 色综合99| 成人性视频在线播放 | 成人国产在线视频 | 一区二区亚洲 | 青草青草久热精品视频在线观看 | 亚洲国产区 | 日日骚av | 国产一区二区在线免费 | 欧美一级淫片免费视频黄 | 亚洲精品一二三 | 欧美日韩国产精品 | 欧美精品日韩精品国产精品 | 一区二区在线免费观看视频 |