Java中级面试之基础篇(01)String、StringBuild、StringBuffer三者的区别

版权声明:支持原创,转载注明出处! https://blog.csdn.net/qq_39416311/article/details/81276742

1:String、StringBuild、StringBuffer三者的区别

相同点:都是用来操作字符串的;

不同点:

a:string是不可变的,即a=1;a=a+1;此时a新建了;string是final类,不能被继承;

常用方法:length()长度、charAt(int)得到指定下标值、indexOf(String)指定内容第一次出现的下标、lastIndexOf(String)指定内容最后一次出现的下标、subString(begin,end)

b:stringbuild是线程不安全,用于需要对字符串大量操作的情况;

append、indexof、delete、

c:stringbuffer是线程安全的。

public synchronized StringBuffer append(char[] str, int offset, int len) {
    super.append(str, offset, len);
    return this;
}

d:执行速度:string要比stringbuild和stringbuffer慢,因为string对象是不可以变的。

String说明:String 对象的hashCode() 值,是根据String 对象的内容计算的,并不是根据对象的地址计算。下面是String 类源码中的hashCode() 方法:String 对象底层是一个final 修饰的char 类型的数组

猜你喜欢

转载自blog.csdn.net/qq_39416311/article/details/81276742