1.借助JDK, 选取几个String与StringBuffer 、StringBuilder的常用API,并编写实例测试API的功能。
(1)String
(2)StringBuffer
(3)StringBuilder
2.String,StringBuffer,StringBuilder
(1)共同点
①内部实现基于字符数组,封装了对字符串处理的各种操作
②可自动检测数组越界等运行时异常
(2)区别
①String内部实现基于常量字符数组,内容不可变;StringBuffer、StringBuilder基于普通字符数组,数组大小可根据字符串的实际长度自动扩容,内容可变。
②性能方面,对于字符串的处理,相对来说StringBuilder >StringBuffer> String。
③StringBuffer线程安全 ; StringBuilder非线程安全
(3)使用场景
不需要改变字符串值的时候使用String比较适合;需要同步的时候,使用线程安全的StringBuffer比较适合;需要添加或插入各种类型的字符串的时候使用StringBuilder比较适合
3.为什么不建议在for循环中使用“+”进行字符串拼接?
因为在for循环中,每次都需要new一个StringBuilder,再把String转成StringBuilder进行append,效率低且浪费内存
4.字符串的编码与解码
编码:将Unicode字符集转换为本地字符集(GB2312或GBK)的过程
(例子)
解码:将本地字符集转换为Unicode字符集的过程
(例子)