理解String、StringBuffer、StringBuilder不要再死记
- String的长度是不可变的,一般的话在常量池中进行操作。
String s1 = "abc"; String s2 = "abc"; String s3 = new String("abc"); System.out.println(s1 == s2); //true System.out.println(s1 == s3); //false
- StringBuffer是可变的字符串,其中的append方法就可以改变字符串的内容,如果经常需要对字符串的内容进行修改时,就需要使用StringBuffer,查看他的源码,发现它的方法有Synchronized关键字修饰,代表它是线程安全的,适合与多线程操作。
- StringBuilder是从JDK1.5开始的一个为StringBuffer提供的一个单线程使用的等价类,通常情况下应该优先选择StringBuilder,因为它是线程不安全的,执行的效率比较快。