StringBuffer & StringBuilder

1.String , StringBuffer , StringBuilder三者的区别 : 

2.StringBuffer

3.代码

/*
    问题 : 为什么说StringBuffer是线程安全的 ?
           因为它的每一个方法都有synchronized关键字
     */
    @Test
    public void test(){
        //源码分析
        String string = new String(); //char[] value = new char[0];
        String string1 = new String("abc"); //char[] value = new char[]{a,b,c};

        StringBuffer stringBuffer = new StringBuffer(); //char[] value = new char[16]; -->底层创建了一个长度是16的char[]
        System.out.println(stringBuffer.length()); // 0 , 有人会问不是说长度16吗 ? 16是容量, 并不是有16个字符
        StringBuffer stringBuffer1 = new StringBuffer("abc");//char[] value = new char["abc".length + 16]; --> 长度19

        StringBuilder stringBuilder = new StringBuilder();
    }

 

posted @ 2021-01-29 17:10  Anonymity_Zhang  阅读(33)  评论(0编辑  收藏  举报