Java 基础之 String、StringBuffe、StringBuilder 的区别
Java 基础之 String、StringBuffe、StringBuilder 区别
首先都是操作字符串相关的类,并且都是java.lang包下的类。
String
1.String 一旦定义好之后长度不可改变,我们平时看到的修改,其实质是产生的一个新 String 对象;
2.String是我们最常用的一个字符串类,在String类中使用了final修饰,所以它不能被继承;
3.String 类中包含有hashCode() 、equals()、toString() 等方法;
4.操作少量数据的时候使用。
使用: String str = new String(“NewString”);
StringBuffer
1.StringBuffer 是长度可变的字符串类,并且线程安全(多线程环境下使用)相比StringBuilder来说速度较慢;
2.在修改时,是在原有的字符串基础进行修改,不产生新的对象;
3.注意:它不包含equals()、hashCode() 方法。
- 构造方法
① public StringBuffer() {}
② public StringBuffer(int capacity ) {}
③ public StringBuffer(String str) {} - 添加功能:向字符串中添加
public StringBuffer append(String str)
// 在什么位置添加str
public StringBuffer insert(int index,String str) - 删除功能
public StringBuffer deleteCharAt(int index)
public StringBuffer delete(int start,int end) - 替换功能:
// 开始位置、结束位置、替换成str
public StringBuffer replace(int start,int end,String str) - 反转功能:将字符串进行反转
public StringBuffer reverse() - 截取功能:截取某一部分字符串
public String substring(int start)
public String substring(int start,int end) - 将字符串缓冲对象转化为字符串
toString()
StringBuilder
1.StringBuilder 和StringBuffer一样,在修改时不产生新的对象;
2.是非线程安全的类,运行时速度快,建议在单线程环境下使用;
3.不包含hashCode()、equals() 方法;