StringBuffer方法:
主要方法:
序号 |
方法描述 |
1 |
public StringBuffer append(String s) |
2 |
public StringBuffer reverse() |
3 |
public delete(int start, int end) |
4 |
public insert(int offset, int i) |
5 |
replace(int start, int end, String str) |
与String类的方法类似:
序号 |
方法描述 |
1 |
int capacity() |
2 |
char charAt(int index) |
3 |
void ensureCapacity(int minimumCapacity) |
4 |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) |
5 |
int indexOf(String str) |
6 |
int indexOf(String str, int fromIndex) |
7 |
int lastIndexOf(String str) |
8 |
int lastIndexOf(String str, int fromIndex) |
9 |
int length() |
10 |
void setCharAt(int index, char ch) |
11 |
void setLength(int newLength) |
12 |
CharSequence subSequence(int start, int end) |
13 |
String substring(int start) |
14 |
String substring(int start, int end) |
15 |
String toString() |
注:由于StringBuilder类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。所用方法基本一致。
区别:
1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。
2、StringBuffer是线程安全的,而StringBuilder是非线程安全的(不能同步访问)。
ps:线程安全会带来额外的系统开销,所以StringBuilder的效率比StringBuffer高。如果对系统中的线程是否安全很掌握,可用StringBuffer,在线程不安全处加上关键字Synchronize。
String为什么不可变:
1、String不可变是因为在JDK中String类被声明为一个final类。
版权声明:本博客为记录本人自学感悟,内容大多从网上学习与整理所得,若侵权请告知!
https://mp.csdn.net/postedit/80365677