首頁 Java Java基礎 string,stringbuffer以及stringbuilder的區別

string,stringbuffer以及stringbuilder的區別

Jun 19, 2020 pm 05:24 PM
string stringbuffer stringbuilder

string,stringbuffer以及stringbuilder的區別

string,stringbuffer以及stringbuilder的區別?

##小編在一次電話面試中,被問過StringBuilder是線程安全的嗎,脫口而出是安全的,結果人家質疑我你是2年開發經驗嗎。長時間得不使用這個類,造成了我選擇的性的忘記,也可以說是基礎不牢吧。我不知道大家有沒有過這樣的經歷,所以還是筆頭上記錄,更能增加我的記憶力。

String:大家都知道String是使用final修飾的,所以它的值是不可變的,這就導致每次對String的操作都會產生新的String對象,這樣不僅效率低下,而且大量浪費有限的記憶體空間,如圖:

string,stringbuffer以及stringbuilder的區別

我們可以看到,初始String值為“abc”,然後在這個字串後面加上新的字串“ bv”,這個過程是需要重新在棧堆內存中開闢內存空間的,最終得到了“abcbv”字符串也相應的需要開闢內存空間,這樣短短的兩個字符串,卻需要開闢三次內存空間,不得不說這是對記憶體空間的極大浪費。為了回應經常性的字串相關的操作,引入了兩個新的類別-StringBuffer類別和StringBuild類別來對此種變化字串進行處理。

string,stringbuffer以及stringbuilder的區別

StringBuilder類別:在 Java 5 中被提出,特點是可變字串。執行效率高,線程不安全。

StringBuffer類別:特點是可變字串,執行效率低,執行緒安全。

可以看得出時間上更快一些。

總結:

  • 如果要操作少量的資料用String;

  • 多執行緒操作字串緩衝區下操作大量資料StringBuffer;

  • 單執行緒操作字串緩衝區下操作大量資料StringBuilder。

推薦教學:《

java教學

以上是string,stringbuffer以及stringbuilder的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
使用java的String.valueOf()函數將基本資料型別轉換為字串 使用java的String.valueOf()函數將基本資料型別轉換為字串 Jul 24, 2023 pm 07:55 PM

使用Java的String.valueOf()函數將基本資料型別轉換為字串在Java開發中,當我們需要將基本資料型別轉換為字串時,常見的方法是使用String類別的valueOf()函數。這個函數可以接受基本資料類型的參數,並傳回對應的字串表示。在本文中,我們將探討如何使用String.valueOf()函數進行基本資料型別轉換,並提供一些程式碼範例來

怎麼把char數組轉string 怎麼把char數組轉string Jun 09, 2023 am 10:04 AM

char陣列轉string的方法:可以透過賦值來實現,使用{char a[]=" abc d\0efg ";string s=a;}語法,讓char陣列對string直接賦值,執行程式碼即可完成轉換。

stringbuilder清空的方法有哪些 stringbuilder清空的方法有哪些 Oct 12, 2023 pm 04:57 PM

stringbuilder清空的方法有:1、使用setLength(0)方法清空StringBuilder物件;2、使用delete(0, length)方法清空StringBuilder物件;3、使用replace(0, length, "")方法清空StringBuilder物件;4 、使用new StringBuilder()重新建立一個新的StringBuilder物件。

Java中使用StringBuilder類別的delete()方法刪除字串中的部分內容 Java中使用StringBuilder類別的delete()方法刪除字串中的部分內容 Jul 26, 2023 pm 08:43 PM

Java中使用StringBuilder類別的delete()方法刪除字串中的部分內容String類別是Java中常用的字串處理類,它具有許多常用的方法可用於字串的操作。然而,在某些情況下,我們需要對字串進行頻繁的修改,而String類別的不可變性會導致頻繁的創建新的字串對象,從而影響效能。為了解決這個問題,Java提供了StringBuilder類,它

使用java的String.replace()函數替換字串中的字元(字串) 使用java的String.replace()函數替換字串中的字元(字串) Jul 25, 2023 pm 05:16 PM

使用Java的String.replace()函數替換字串中的字元(字串)在Java中,字串是不可變的對象,這意味著一旦創建了一個字串對象,就無法修改它的值。但是,你可能會遇到需要替換字串中的某些字元或字串的情況。這時候,我們可以使用Java的String類別中的replace()方法來實作字串的替換。 String類別的replace()方法有兩種重

在Java中將字串轉換為StringBuilder 在Java中將字串轉換為StringBuilder Sep 02, 2023 pm 03:57 PM

StringBuilder類別的append()方法接受String值並將其新增至目前物件。將字串值轉換為StringBuilder物件-取得字串值。附加使用append()方法將字串取得到StringBuilder。範例在下面的Java程式中,我們是將字串陣列轉換為單一StringBuilder物件。 即時示範publicclassStringToStringBuilder{  publicstaticvoidmain(Stringargs[]){&a

Java文件解讀:StringBuilder類別的substring()方法詳細介紹 Java文件解讀:StringBuilder類別的substring()方法詳細介紹 Nov 03, 2023 pm 04:31 PM

Java文件解讀:StringBuilder類別的substring()方法詳細介紹引言:在Java程式設計中,字串的處理是非常常見的操作之一。而Java提供了一系列關於字串處理的類別和方法,其中StringBuilder類別是常用於頻繁字串操作的選擇。在StringBuilder類別中,substring()方法是一個非常有用的方法,用來截取字串的子字串。本文將

Java如何使用StringBuilder類別的substring()函數截取字串的子字串 Java如何使用StringBuilder類別的substring()函數截取字串的子字串 Jul 24, 2023 pm 12:13 PM

Java如何使用StringBuilder類別的substring()函數截取字串的子字串在Java中,我們經常需要處理字串的運算。而Java的StringBuilder類別提供了一系列的方法,方便我們對字串進行操作。其中,substring()函數可以用來截取字串的子字串。 substring()函數有兩種重載形式,分別是substring(intstar

See all articles