一、请简述String,StringBuffer,StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?
相同点 :
1、内部实现基于字符数组,封装了对字符串处理的各种操作
2、可检测数组越界等运行时异常
不同点:
1、String内部实现基于常量字符数组,内容不可变;StringBuffer、StringBuilder基于普通字符数组,数组大小可根据字符串的实际长度自动扩容,内容可变
2、StringBuffer线程安全;StringBuilder非线程安全
二、为什么不建议在for循环中使用“+”进行字符串拼接?
字符串拼接,应使用StringBuilder或StringBuffer,将对象创建语句放到循环体外