String、StringBuilder和StringBuffer是开发中常用的类,面试当中也常会被问及到,记录一下他们的用法和区别方便以后应用。
1、用法
String strConstant = "Java学习";
String strSum = strC + strE;
StringBuilder builer = new StringBuilder();
builder.append(strC).append(strE);
StringBuffer buffer = StringBuffer();
buffer.append(strC).append(strE);
2、比较
代码执行耗时比较:String > StringBuilder > StringBuffer
String执行速度最慢的原因是:String是字符串常量,一旦创建就不可修改,对String类型的变量进行操作实际上是重新创建新对象,旧对象被回收。
StringBuilder和StringBuffer 对对象进行操作的时候不会有创建和回收的过程,因此执行效率较高,StringBuilder对象不考虑线程问题,StringBuffer的方法中都进行了同步处理,因此StringBuilder执行效率高于StringBuffer。因此单线程操作字符串尽量使用StringBuilder,但是多线程操作同一个字符串时则需要使用StringBuffer。