在Java中会使用这三个类来表示和操作字符串,字符串就是多个字符的集合
String 是内容不可变的字符串 String str = new String(“sfsdfsdf”);
而StringBuilder,StringBuffer是内容可以改变的字符串
String底层使用了一个不可变的字符数组(final char[])
而StringBuilder,StringBuffer底层实用的是可变的字符数组(没有使用final修饰)
最经典的就是追加值,拼接字符串(append)
第一种就是通过String进行拼接String = "a"+"b",创建了a,b两个对象
第二种用 StringBuilder,StringBuffer
StringBuilder sb = new StringBuilder();
sb.append("a").append("b");
所以在进行字符串拼接的时候,尽量使用StringBuilder,StringBuffer而不用String
StringBuilder,StringBuffer的区别
StringBuilder :是线程不安全的,而效率较高
StringBuffer:是线程安全的,效率较低
StringBuffer 的append等方法加了同步锁synchronized,而StringBuilder 没有,所以StringBuffer 的线程安全的
网友评论