String,StringBuffer,StringBuilder简单介绍区别

String

    String是一个字符串类型,底层的实现是用的char数组去实现的,String中的char数组是用final修饰的,也就是说String中的char数组是不能改变的,在改变String类型的字符串的值的时候是改变重新创建了一个数组,而不是改变了原来的数组,下面我用打印地址的方式去验证。

 

StringBuffer

      StringBuffer也是一个字符串类型,它与String的不同之处是,StringBuffer中的char数组没有用final修饰,所以它的数组是可以改变的,改变StringBuffer的值的时候不会重新创建对象,而是改变原来的StringBuffer中的数组。同样的通过打印地址去验证

 

StringBuilder 

     StringBuilder同样也是一个字符串,它与String的不同之处是,StringBuilder 中的char数组没有用final修饰,所以它的数组是可以改变的,改变StringBuilder 的值的时候不会重新创建对象,而是改变原来的StringBuilder 中的数组。与StringBuffer的区别是StringBuffer是线程安全的,StringBuilder 不是线程安全的,在其他环境相同的情况下,只要解决线程安全问题就会影响效率,所以StringBuffer比StringBuilder的效率低,效率我就不验证了太麻烦了,下面代码验证StringBuilder对象可以改变。

 

 

猜你喜欢

转载自blog.csdn.net/minolk/article/details/81871981
今日推荐