基础数据类型(int,char,……)传值,对象类型(Object,数组,容器……)传引用。
如果理解成java方法参数都是传值的,也行,只是理解方式不同而已。引用本身也是值(对象地址)。
传值方式:传递的是值的副本。方法中对副本的修改,不会影响到调用方。
传引用方式:传递的是引用的副本。此时,形参和实参指向同一个内存地址。对引用副本所指向的对象的修改,如修改对象属性、容器内容等,会影响到调用方。对引用副本本身(对象地址)的修改,如设置为null,重新指向其他对象,不会影响到调用方。
只要知道传引用时,也是传递的引用的副本,就比较容易理解了。 |