java中的值传递
一、Java只有值传递
在 Java 中:
- 基本类型:传递 值的副本
- 引用类型:传递 引用地址的副本
注意:
传递的是引用的副本,而不是对象本身
1 | public void insert(int []nums,int num,int index){ |
调用:
1 | int[] arr = {1,2,3,4,5}; |
内存结构
调用前:
1 | arr -----> [1,2,3,4,5] |
调用方法时:
1 | nums -----> [1,2,3,4,5] |
注意:
1 | arr 和 nums 指向的是同一块数组 |
只是:
1 | nums = arr 的地址副本 |
所以:
1 | arr地址 = 0x100 |
因为传入的是对象地址值的副本,所以在方法内修改对象,对象中的信息也会改变,因为指向的同一块内存地址,方法内修改的是同一块内存地址;
但是如果在方法内改变对象的指向,方法外的对象不会改变; 因为传递的是副本,外面对象地址是不变的,方法内只是地址的副本的指向发生改变,不会影响方法外的对象;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!

