一.借助JDK文档,选取String与StringBuffer、StringBuilder的常用API,并编写实例测试API的功能。
二.请简述String、StringBuffer、StringBuilder三者之间的共同点和区别,应该分别在何种场景下使用?
-
相同点:
1、内部实现基于字符数组,封装了对字符串处理的各种操作。
2、可自动检测数组越界等运行时异常。 -
不同点:
1、String内部实现基于常量字符数组,内容不可变;
StringBuffer、StringBuilder基于普通字符数组,数组大小可根据字符串的实际长度自动扩容,内容可变;
2、性能方面,对于字符串的处理,相对来说
StringBuilder >StringBuffer>String;
3、StringBuffer线程安全;StringBuilder非线程安全。 -
使用场景:
String:对安全要求更高。
StringBuffer、StringBuilder:对性能要求更高。
三.为什么不建议在for循环中使用“+”进行字符串拼接?
- 常用的字符串拼接方式有五种,分别是使用+、使用concat、使用StringBuilder、使用StringBuffer以及使用StringUtils.join。
- 每次都需要new,存在内存和效率问题。