A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有点迷惑,到底 Java 是如何传递参数的?是by value或by reference?

2 个回复

正序浏览
:dizzy:钻的这么深
回复 使用道具 举报
基础数据类型(int,char,……)传值,对象类型(Object,数组,容器……)传引用。
如果理解成java方法参数都是传值的,也行,只是理解方式不同而已。引用本身也是值(对象地址)。
传值方式:传递的是值的副本。方法中对副本的修改,不会影响到调用方。
传引用方式:传递的是引用的副本。此时,形参和实参指向同一个内存地址。对引用副本所指向的对象的修改,如修改对象属性、容器内容等,会影响到调用方。对引用副本本身(对象地址)的修改,如设置为null,重新指向其他对象,不会影响到调用方。
只要知道传引用时,也是传递的引用的副本,就比较容易理解了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马