又一段java代码

publicclassTest1 {

   String a = "123";

   publicstaticvoidchange(Test1 test){

        test.a="abc";

   }

   publicstaticvoidmain(String[] args){

        Test1 test1=new Test1();

        System.out.println(test1.a); //123

        change(test1);

        System.out.println(test1.a); //abc

   }

}

publicclassTest11 {

    Stringa = "123";

    publicvoid change(Test11 test) {

        test = new Test11();

        test.a = "abc";   

    }

    publicstaticvoid main(String[] args) {

        Test11test1= newTest11();

        System.err.println(test1.a);//123

        test1.change(test1);

        System.out.println(test1.a);//123

    }

}

publicclassTest2{

    publicstaticvoid change(String str){

        str = "abc";

   }

   publicstaticvoidmain(String[] args){

        String str = "123";

        System.out.println(str); //123

        change(str);

        System.out.println(str);  //123

   }

   

}

    publicclass Test3{

        publicstaticvoid main(String[] args) {

            String[] strs ={"123","222"};

            System.out.println(strs[0]);//123

            change(strs);

            System.out.println(strs[0]);//abc

        }

        publicstaticvoid change(String []strs){

            strs[0] ="abc";

        }

    }

publicclassTest4a {

    publicvoid testString() {

        StringoriginalStr= "123";

        System.err.println(originalStr);//123

        changeNewString(originalStr);

        System.out.println(originalStr);//123

    }

    publicvoid changeNewString(String original) {

        original="abc";                      //1

    }

    publicstaticvoid main(String[] args) {

        Test4at = new Test4a();

        t.testString();

    }

}

 

publicclassTest4b {

    publicvoid testString() {

        StringoriginalStr= newString("123");

        System.err.println(originalStr); //123

        changeNewString(originalStr);

        System.out.println(originalStr);//123

    }

    publicvoid changeNewString(String original) {

        original.concat("haha");            //2

    }

    publicstaticvoid main(String[] args) {

        Test4bt = new Test4b();

        t.testString();

    }

}

publicclassTest4c {

 

    publicvoid testStringBuffer(){

        StringBufferoriginalStr= newStringBuffer("123");

        System.out.println(originalStr);//123

        changeNewStringBuffer(originalStr);

        System.out.println(originalStr);//123

    }

    publicvoidchangeNewStringBuffer(StringBuffer original) {

        original = new StringBuffer("abc");//1

    }

    publicstaticvoid main(String[] args) {

        Test4ct = new Test4c();

        t.testStringBuffer();

    }

}

publicclassTest4d {

    publicvoid testStringBuffer(){

        StringBufferoriginalStr= newStringBuffer("123");

        System.out.println(originalStr);//123

        changeNewStringBuffer(originalStr);

        System.out.println(originalStr);//123abc

    }

    publicvoidchangeNewStringBuffer(StringBuffer original) {

        original.append("abc");           //2

    }

    publicstaticvoid main(String[] args) {

        Test4dt = new Test4d();

        t.testStringBuffer();

    }

}

这些个代码也是够了!!

网上看到一些代码,反复推敲了,才找到一个合理的思路。

传值可以很好的理解(引用也是值,地址的值,并且是放到方法的本地变量中),另外一个问题在于String和StringBuffer的赋值,以及String的concat以及StringBuffer的append方法的的实现。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值