关键还是要看你怎么理解“引用”和“引用传递”。
1.从编译原理的角度讲,所有那些无法通过形参来修改实参本身的传递机制都是“值传递”,在JAVA中,你只能通过在形参上调用方法来
修改实参所引用的那个对象,却修改不了实参本身(不能使它引用到另个对象):- void f(ArrayList list) {
- list = new ArrayList(); //list不影响外边的实参。
- }
复制代码 所以从这个角度,JAVA中根本就没有“引用传递”。
2.在JAVA中,除了内建类型的变量,“一切都是引用”,所以传递一个非内建类型的参数,当然也就是传递一个引用,
所以,也可以说JAVA中所有的(除非内建类型)参数传递又“都是引用传递”。 |