JAVA复习( StringBuffer 和 StringBuilder)
1 StringBuffer 和 StringBuilder
?
String類在所有項目開發中是一定會使用到的類,但是這個類有以下特點:
?
1 字符串的內容一旦聲明則不可改變
?
2 字符串常量全部都是String的匿名對象
?
3 可以直接賦值使用
?
String雖然使用起來很方便,但是缺陷是內容不可修改:
?
范例:觀察修改String內容
| public static void main(String[] args) { ????????? ????????? ????????? String str="hello"; ????????? ????????? fun(str); ????????? ????????? System.out.println(str); ???? } ???? ???? ???? public static void fun(String str) { ????????? ????????? ????????? str="world"; ???? } |
?
通過以上的代碼發現String字符串是修改不了的內容的,如果修改了內容只是字符串的拼接會產生大量的垃圾空間
?
如果想要在頻繁的修改字符串的內容則JDK 為用戶提供了StringBuilder 或者 StringBuffer 類來幫助用戶實現頻繁修改字符串的功能
?
該類的定義如下:StringBuffer
| public final class StringBuffer extends Object implements Serializable, CharSequence |
?
構造方法:
1 public?StringBuffer() ; 默認構造一個StringBuffer 會開辟16字符空間
?
2 ublic?StringBuffer(String?str);構造StringBuffer 可以直接給定字符串
?
普通方法
?
1 public?StringBuffer?append(數據類型?數據)? 添加內容到StringBuffer中
2 public?String?toString(); 把StringBuffer轉換為String
?
范例:使用StringBuffer
| ???? public static void main(String[] args) { ????????? ????????? ????????? StringBuffer sbf=new StringBuffer(); //空構造 ????????? ????????? sbf.append("hello").append("java").append(""); ????????? ????????? fun(sbf); ????????? ????????? System.out.println(sbf.toString()); ????????? ???? } ???? ???? ???? public static void fun(StringBuffer sbf) { ????????? ????????? sbf.append("world"); ???? } |
?
?
在以上案例中存在兩種方式賦值
?
1 構造方法直接給定 內容
?
2 通過 append()可以可定內容 該方法可以一致返回StringBuffer 并且再次調用append()
?
3 toString方法可以把StringBuffer 轉換為String
?
?
StringBuilder
?
功能上和StringBuffer 完全一樣,但是他們的區別如下:
?
StringBuffer? 線程安全? 同步處理? 效率低
?
StringBuilder 非線程安全? 異步護理 效率高
?
范例:用StringBuilder實現
| ???? public static void main(String[] args) { ????????? ????????? ????????? StringBuilder sbf=new StringBuilder(); //空構造 ????????? ????????? sbf.append("hello").append("java").append(""); ????????? ????????? fun(sbf); ????????? ????????? System.out.println(sbf.toString()); ????????? ???? } ???? ???? ???? public static void fun(StringBuilder sbf) { ????????? ????????? sbf.append("world"); ???? } |
?
?
對于StringBuffer 也提供了相應的操作方法:
?
1 public?StringBuffer?reverse() 字符串反轉
| System.out.println(sbf.reverse().toString()); |
?
2 public?StringBuffer?delete(int?start, int?end) ;刪除指定的字符串
?
| System.out.println(sbf.delete(0, 4).toString()); |
在項目開發中 首先使用String類來描述字符串,但是如果出現需要頻繁修改字符串的需求則使用StringBuilder 或者StringBuffer類
總結
以上是生活随笔為你收集整理的JAVA复习( StringBuffer 和 StringBuilder)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 税务实名认证在手机上如何操作,有以下十一
- 下一篇: JAVA复习(二维数组——快排——迷宫)