深入理解String、StringBuffer、StringBuilder三者的区别

理解String、StringBuffer、StringBuilder不要再死记

  1. String的长度是不可变的,一般的话在常量池中进行操作。
            String s1 = "abc";
            String s2 = "abc";
            String s3 = new String("abc");
            System.out.println(s1 == s2);   //true
            System.out.println(s1 == s3);   //false

     

  2. StringBuffer是可变的字符串,其中的append方法就可以改变字符串的内容,如果经常需要对字符串的内容进行修改时,就需要使用StringBuffer,查看他的源码,发现它的方法有Synchronized关键字修饰,代表它是线程安全的,适合与多线程操作。深入理解String、StringBuffer、StringBuilder三者的区别_第1张图片
  3. StringBuilder是从JDK1.5开始的一个为StringBuffer提供的一个单线程使用的等价类,通常情况下应该优先选择StringBuilder,因为它是线程不安全的,执行的效率比较快。

你可能感兴趣的:(深入理解String、StringBuffer、StringBuilder三者的区别)