public class test {
public static void main(String[] args) {
boolean flag=false;
char[] c=new char[5];
c[0]='e';
read(flag, c);
System.out.println(c[0]);
System.out.println(flag);
}
public static void read(boolean flag, char[] c){
flag=true;
c[0]='a';
}
}
在上面的代碼中,我發現一個有趣的問題:char[] c
已經改變,打印結果正確,但布爾標誌沒有被改變!我不知道這是怎麼發生的? 現在,我也想改變旗子,這可以怎麼辦? 感謝您的幫助!一些參數可以在方法來改變,但有些不是在java中
區別在於一個參數是參考參數(數組),另一個參數是原始參數。由於Java方法參數只是按值傳遞的,因此在方法中不能更改圖元,也不能更改參數*的引用,但可以更改所引用對象的內容。想想這個陣列就像通過一個蛋箱一樣。由於「傳遞價值」,您不能更換蛋箱,但您可以更換包裝箱中的雞蛋。 – 2013-03-15 00:15:15
我一直髮現[this](http://javadude.com/articles/passbyvalue。htm)是理解java參數傳遞 – 2013-03-15 00:18:27