相同点:它们都表示一个字符串类。
不同点:
String类是被final修饰的,长度不可变,值不可变,String类不能被继承。比如:
String a=“123”;
a=a+”456″;
当拼接字符串的时候,String类的对象的值并没有改变,而是产生了一个新的对象交给了变量a。
上面的代码,一共创建了3个String类的对象,分别是,“123”,“456”,“123456”。
StringBuilder类是可变的,值可变,长度可变,可以自动扩容。但是它的所有的方法都没有加同步,所以它是线程不安全的,所以它的效率高。
StringBuffer类是可变的,值可变,长度可变,可以自动扩容。但是它的所有的方法都加了同步,所以它是线程安全的,所以它的效率不高。
版权声明:本文为qq_39872643原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。