String|StringBuilder|StringBuffer
String,StringBuilder,StringBuffer
先说结论:
String
作为字符串常量,有拼接字符串操作的时候不要用。
StringBuilder
线程不安全,但是速度快,推荐使用,单线程情况下
StringBuffer
线程安全,但是比builder慢一点,基本在你要求线程安全的特殊场景下用
String
String a = "12345";//"12345" 就是字符串常量,a是指向这个字符串常量
a = "abcd";//"abcd" 就是另一个字符串常量,a是又指向了这个字符串常量【之前的"12345"还存在字符串常量池中】
字符串常量是存放在字符串常量池中的,它是不会变的,每次对字符串做拼接时都会有新的字符串常量产生放在字符串常量池中。所以不建议在拼接时使用。
StringBuilder,StringBuffer
StringBuilder,StringBuffer
相对于string来说,对象可以被多次修改,拼接,而不产生新的对象,不会浪费内存空间
OK,又水了一篇