Java学习笔记110——StringBuffer类的练习—区别案例

StringBuffer类的练习——区别案例

案例1 :String,StringBuffer,StringBuilder之间的区别

1、StringBuffer是线程同步安全的,数据安全,效率低 StringBuilder不是线程同步安全的,数据不安全,效率高 2、String的内容是不可变的,StringBuffer和StringBuilder是可变的 3、StringBuffer中的方法是由synchronized关键字修饰的。

案例2:StringBuffer和数组的区别?

它们都可以被看作是一个容器,装一些数据。 但是呢,StringBuffer里面的数据都是一个一个的字符 数组可以存放不同数据类型的数据,但是同一个数组只能存放同一种数据类型的数据

看程序写结果: 探究String与StringBuffer分别作为方法的参数传递的区别

public class StringBufferDemo11 {
    public static void main(String[] args) {
//        StringBuffer sb = new StringBuffer();
//        sb.append("hello");
//        System.out.println(sb);
//
//        StringBuilder sb2 = new StringBuilder();
//        sb2.append("world");
//        System.out.println(sb2);
​
        String s1 = "hello";
        String s2 = "world";
        System.out.println("s1: " + s1+" ,s2:" + s2); //s1:hello ,s2:world
        change(s1,s2);
        System.out.println("s1: " + s1+" ,s2:" + s2); //s1:hello ,s2:world
​
        System.out.println("*******************************************");
        StringBuffer sb1 = new StringBuffer("hello");
        StringBuffer sb2 = new StringBuffer("world");
        System.out.println("sb1: " + sb1+" ,sb2:" + sb2);
        change(sb1,sb2);
        System.out.println("sb1: " + sb1+" ,sb2:" + sb2);
        //sb1: hello ,sb2:worldworld
​
​
​
    }
​
    private static void change(StringBuffer sb1,StringBuffer sb2){
        sb1 = sb2;
        sb2.append(sb1);
        System.out.println("sb1: " + sb1+" ,sb2:" + sb2);
        //sb1: worldworld ,sb2:worldworld
​
    }
​
    private static void change(String s12, String s22) {
        s12 = s22; //s1:"world"
        s22 = s12 + s22; //s2:"worldworld"
        System.out.println("s1: " + s12+" ,s2:" + s22);//s1:world ,s2:worldworld
    }
}
posted @ 2021-12-17 00:01  欧朋  阅读(46)  评论(0)    收藏  举报