日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA复习( StringBuffer 和 StringBuilder)

發布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。