版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84704239
String、StringBuffer和StringBuilder类的区别
1、String是一个不可变的字符序列。
2、StringBuffer,StringBuilder是可变的字符序列。
3、StringBuffer和StringBuilder类的方法基本都是一样的,不一样的地方就是StringBuffer是线程安全的,StringBuilder是线程不安全的。
4、StringBuffer是jdk1.0版本的,线程安全效率低。
5、StringBuilder是jdk1.5版本的,是线程不安全的,效率高。
String和StringBuffer分别作为参数传递
基本数据类型的值传递,不改变其值,引用数据类型的值传递,改变其值。
注意:
String类虽然是引用数据类型,但是当作参数传递时和基本数据类型是一样的。
分析其原因:
String类是不可改变,其不可改变的本质就在于不能在内存中改变对象的属性值,也就是说无论引用值如何改变,对象是不可变的。
package StringBufferPackage;
public class Test2 {
public static void main(String[] args) {
String s = new String("java");
System.out.println(s);
change(s);
System.out.println(s);
System.out.println("--------------------------------");
StringBuffer sb = new StringBuffer("Mysql");
System.out.println(sb);
change(sb);
System.out.println(sb);
}
private static void change(StringBuffer sb) {
sb.append("xiao");
}
private static void change(String s) {
s += "xiao";
}
}
运行结果如下: