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”);
java源代码中可以看出

StringBuffer

1.StringBuffer 是长度可变的字符串类,并且线程安全(多线程环境下使用)相比StringBuilder来说速度较慢;
2.在修改时,是在原有的字符串基础进行修改,不产生新的对象;
3.注意:它不包含equals()、hashCode() 方法。
在这里插入图片描述

  1. 构造方法
    ① public StringBuffer() {}
    ② public StringBuffer(int capacity ) {}
    ③ public StringBuffer(String str) {}
  2. 添加功能:向字符串中添加
    public StringBuffer append(String str)
    // 在什么位置添加str
    public StringBuffer insert(int index,String str)
  3. 删除功能
    public StringBuffer deleteCharAt(int index)
    public StringBuffer delete(int start,int end)
  4. 替换功能:
    // 开始位置、结束位置、替换成str
    public StringBuffer replace(int start,int end,String str)
  5. 反转功能:将字符串进行反转
    public StringBuffer reverse()
  6. 截取功能:截取某一部分字符串
    public String substring(int start)
    public String substring(int start,int end)
  7. 将字符串缓冲对象转化为字符串
    toString()

StringBuilder

1.StringBuilder 和StringBuffer一样,在修改时不产生新的对象;
2.是非线程安全的类,运行时速度快,建议在单线程环境下使用;
3.不包含hashCode()、equals() 方法;
在这里插入图片描述

发布了5 篇原创文章 · 获赞 1 · 访问量 133

猜你喜欢

转载自blog.csdn.net/Q_Q104926/article/details/103149653