publicclassTestArray{publicstaticvoidmain(String[]args){//reviseanarraydirectlywithoutreturnString[]test={"test"};voidReturn(test);System.out.println(test[0]);//reviseanarraydirectlywithreturnString[]test2={"test2"};String[]outtest2=arrayReturn(test2);System.out.println(outtest2[0]);//reviseanarraybyanotherwayString[]test3={"test3"};voidReturn2(test3);System.out.println(test3[0]);}publicstaticvoidvoidReturn(String[]a){String[]b={"b"};a=b;System.out.println("ainvoidReturnis"+a[0]);}publicstaticString[]arrayReturn(String[]a){String[]b={"b"};a=b;System.out.println("ainarrayReturnis"+a[0]);returna;}publicstaticvoidvoidReturn2(String[]a){a[0]="b";System.out.println("ainvoidReturn2is"+a[0]);}}输出:ainvoidReturnisbtestainarrayReturnisbbainvoidReturn2isbb在传递一个引用类型的时候,使引用类型指向别的引用类型,为什么在main方法中的值依然不变?(voidReturn方法)作为返回值传出,可以修改,这是什么原理?(arrayReturn)对引用了类型直接修改,可以改变值(voidReturn2)表达的很模糊,大概不明确例子中的值怎么传的。希望可以知道原理和明确的理论,不是只记住这种情况是这样。
阿晨1998
撒科打诨
相关分类