string、stringBuffer和stringBuilder區別

Java string類——string字符串常量

string是字符串常量,字符串在java中屬於對象。並且,string有一個特性,即初始化了就不可更改。因此每次對string進行的操做其實實戰上是新建了一個新的string,將以前的指針指向新的位置。這樣的操做對於一些常常須要改變的string值來講,就會形成效率的低下以及形成大量的空間浪費。因此就有了另外的兩個類String Buffer和String Builder。java

Sting Buffer和String Builder——字符串變量

string Buffer和string Builder類的對象能夠屢次被修改,並且不會每次修改都產生新的對象來浪費空間。因此若是字符串在程序中會被屢次修改,能夠使用這兩種類型來初始化。
而string Buffer和string Builder中也有必定的區別。之間最大的區別就是string Buffer是線程安全的,能夠在多線程中使用。而string Builder是線程不安全的,不能夠在多線程中使用。可是string Builder的速度又優於string Buffer,因此若是是在單線程中,則使用string Builder則更優於string Buffer。安全

三者以前的區別

(1)字符修改上的區別(主要)多線程

  • String:不可變字符串;
  • StringBuffer:可變字符串、效率低、線程安全;
  • StringBuilder:可變字符序列、效率高、線程不安全;

(2)初始化中,string能夠被賦空值,然後二者不能夠。學習

小結

(1)若是要操做少許的數據用 String;
(2)多線程操做字符串緩衝區下操做大量數據 StringBuffer;
(3)單線程操做字符串緩衝區下操做大量數據StringBuilder(推薦使用)。ui

 

本文學習自大佬:https://blog.csdn.net/weixin_41101173/article/details/79677982.net

相關文章
相關標籤/搜索