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参数确实是按值传递的,这个值是引用值。