2020春招Java面试题型汇总《1》( 三 )

StringBuffer 每次都会对 StringBuffer 对象本身进行操作 , 而不是生成新的对象并改变对象引用 。 相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升 , 但却要冒多线程不安全的风险 。

因此:由于 StringBuilder 相较于 StringBuffer 有速度优势 , 所以多数情况下建议使用 StringBuilder 类 。 然而在应用程序要求线程安全的情况下 , 则必须使用 StringBuffer 类 。

总结

1.少量数据:适用String

2.单线程操作字符串缓冲区下操作大量数据: 适用StringBuilder

3.多线程操作字符串缓冲区下操作大量数据: 适用StringBuffer

2. 构建器Constructor是否可被override?

java中 , 父类的私有属性和构造方法都不能被继承 , 所以Constructor也就不能被重写 , 但是可以重载 , 所有可以看到一个类中有多个构建函数的情况 。

推荐阅读