java的參數如果是個對象,當調用此方法時傳入的是對象的引用值。以下是僞代碼:
Object obj = null;
function A(Object obj){
obj_ref2 = obj_ref1; // 按值傳入引用obj_ref1,得到obj_ref1的副本obj_ref2
obj = new Object(); //此時只是副本指向了新的對象,原來的引用並沒有改變指向
}
A方法結束後,你的obj依然爲null。所以java參數確實是按值傳遞的,這個值是引用值。