1.String不可改变的对象,StringBuffer与StringBuilder都是可以改变对象
原因是可以查看源码:
value[ ]修饰符为private final private说明只有自己的类可以访问,final定义为常量,不可修改
而StringBuilder 继承自AbstractStringBuilder,AbstractStringBuilder源码如下,Value的修饰为default ,同一个包里面都而已访问,没有final修饰,可修改
StringBuffer与StringBuilder都是可改变的对象,
但是StringBuilder效率高,线程不安全;
StringBuffer效率低,线程安全
对于三者使用的总结:
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer