忘了在哪看到那個問題,引起了我的疑問,我在CSDN發了一個帖。
我把代碼帖上來,各位不妨先不看下面的解釋,看看輸出結果是什么
class Test { private int t; Test(int t) { this.t = t; } static void changeRef(Test test) { test = new Test(1); } public static void main(String[] args) { Test test = new Test(2); changeRef(test); System.out.println(test.t); } }
怎么樣?結果對了嗎?最后輸出的結果是2.
下面我來解釋一下(注,之前畫錯了,現在更改。本人認為正確,有異議請提出)
上面的結果可以看出,java方法參數的傳遞是值傳遞