Java大厂面试备战之String和StringBuilder和StringBuffer
String, StringBuilder和StringBuffer的区别一、String
String是由final修饰的类,所以是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁
String str = "张三";
System.out.println(str);
System.out.println(str.hashCode());
二、StringBuffer
StringBuffer是可变字符串,拼接的方法可以调用append(),注意这是线程安全的字符,所以效率上会比StringBuilder会更低,一般运用场景在多线程场景下可变字符串
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("张三在").append("吃饭").append("干嘛");
System.out.println(stringBuilder.length());
System.out.println(stringBuilder.toString());
三、StringBuilder
StringBuffer是可变字符串,拼接的方法可以调用append(),这是线程不安全的字符,所以效率上会比StringBuffer会更高,开发过程中高频使用的字符类型
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("李四在").append("公园").append("跳绳");
System.out.println(stringBuffer.toString());
System.out.println(stringBuffer.length());
stringBuffer.delete(0,1);
System.out.println(stringBuffer);
总结
根据具体运用场景去选择合适的字符类型,String适合大多数情况使用,StringBuilder可用于可变字符拼接是不会产生新的字符对象效率也高,StringBuffer适用于多线程场景下使用