1.String 与 StringBuffer ,StringBuilder的区别和共同点
2.String与StringBuffer 、StringBuilder的常用API
String:
String s1 = "Hello World!";
System.out.println(s1.charAt(2)); //charAt(int i) 返回索引为i的字符
int length = s1.length(); //获取长度
boolean empty = s1.isEmpty(); //判空 长度为0时返回true
StringBuffer:
StringBuffer s1 = new StringBuffer("Hello World");
s1.append('X'); //在末尾添加一个字符
s1.append("!!!!!!!"); //在末尾添加一串字符
s1.delete(0,3); //删除其中索引为0到3的字符
String s2 = s1.toString(); // 转换为String
StringBuilder:
StringBuilder s1 = new StringBuilder("Hello World");
s1.append('X'); //在末尾添加一个字符
s1.append("!!!!!!!"); //在末尾添加一串字符
s1.delete(0,3); //删除其中索引为0到3的字符
System.out.println(s1.getClass()); //获取类名
String s2 = s1.toString(); // 转换为String
这三者的API还有很多,可以在JDK中查询
String (Java Platform SE 8 ) (oracle.com)
3.为什么不建议在for循环中使用“+”进行字符串拼接
由于字符串拼接过程中会创建新的对象,频繁的新建对象当然要耗费很多时间,不仅仅会耗费时间,频繁的创建对象,还会造成内存资源的浪费。所以如果要在一个循环体中进行字符串拼接,就要考虑内存问题和效率问题。