string插入字符_String类
String 類對象代表不可變的Unicode字符序列,因此我們可以將String對象稱為“不可變對象”。 那什么叫做“不可變對象”呢?指的是對象內部的成員變量的值無法再改變。我們打開String類的源碼,如圖
們發現字符串內容全部存儲到value[]數組中,而變量value是final類型的,也就是常量(即只能被賦值一次)。 這就是“不可變對象”的典型定義方式。
我們發現在前面學習String的某些方法,比如:substring()是對字符串的截取操作,但本質是讀取原字符串內容生成了新的字符串。
1. StringBuilder,Stringbuffer用法_jdk底層源碼分析
(1) StringBuffer與StringBuilder的異同點是什么?
① 異:在這方面運行速度快慢為:StringBuilder > StringBuffer > String
在線程安全上,StringBuilder是線程不安全的,而StringBuffer是線程安全的
② 同: StringBuffer和StringBuilder非常類似,均代表可變的字符序列。 這兩個類都是抽象類AbstractStringBuilder的子類,方法幾乎一模一樣.
內部也是一個字符數組,但這個字符數組沒有用final修飾,隨時可以修改。
(2) String與StringBuffer的異同點是什么?
①String類是字符串常量,是不可更改的常量。
②StringBuffer類中的方法主要偏重于對于字符串的變化。
③String和StringBuffer他們都可以存儲和操作字符串,即包含多個字符的字符串數據。
④StringBuffer類和String一樣,也用來代表字符串。只是由于StringBuffer的內部實現方式和String不同,所以StringBuffer在進行字符串處理時,不生成新的對象,在內存使用上要優于String類。
⑤所以在實際使用時,如果經常需要對一個字符串進行修改,例如插入、刪除等操作,使用StringBuffer要更加適合一些。
⑥在StringBuffer類中存在很多和String類一樣的方法,這些方法在功能上和String類中的功能是完全一樣的。但是,對StringBuffer對象的每次修改都會改變對象自身,這點是和String類最大的區別。
⑦另外由于StringBuffer是線程安全的,所以在多線程程序中也可以很方便的進行使用,但是程序的執行效率相對來說就要稍微慢一些。
⑧StringBuffer 上的主要操作是 append 和 insert 方法,可重載這些方法,以 接受任意類型的數據。
⑨StringBuffer:字符串變量(Synchronized,即線程安全)。如果要頻繁對字符串內容進行修改,出于效率考慮最好使用StringBuffer,如果想轉成String類型,可以調用StringBuffer的toString()方法。
總結
以上是生活随笔為你收集整理的string插入字符_String类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WPF系列(一)第一个WPF应用程序!
- 下一篇: 从索引 0 处开始,初始化字符串的格式不