Java基础【二】 - 值传递和引用传递

发布时间:2019-11-18 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java基础【二】 - 值传递和引用传递脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

什么是值传递

在方法的调用过程中实参把它的实际值传递给形参此传递过程就是将实参的值复制一份传递到函数中,这样如果在函数中对该值(形参的值)进行了操作将不会影响实参的值。因为是直接复制,所以这种方式在传递大量数据时,运行效率会特别低下。

什么是引用传递

引用传递弥补了值传递的不足,如果传递的数据量很大,直接复过去的话,会占用大量的内存空间,而引用传递就是将实参的地址复制一份传递到函数中。形参和实参的地址相同,指向同一块内存地址,也就是说操作的其实都是数据,所以如果在函数中对该值(形参的值)进行了操作将会影响实参的值。(注意:这里所说的是改变源数据的内容,如:改变的对象的属性)

实例

public static void main(String[] args) {     int str = 1;         char[] ch = {'a', 'b'};     change(str, ch);     System.out.PRintln(str);    //输出:1     System.out.println(ch);    //输出:cd }          public static void change(int str, char[] ch) {             str = 2;     ch[0] = 'c';    //改变数据源内容 }

值传递和引用传递过程分析图

  1. 为对象分配内存空间

Java基础【二】 - 值传递和引用传递

  1. 执行 change() 方法。执行前实参(黑色)和形参(红色)指引。

Java基础【二】 - 值传递和引用传递

  1. 执行后

Java基础【二】 - 值传递和引用传递

怎么改变值传递的实参

可以利用反射改变实参的值,后面会写反射相关的文章

如果内容对你有帮助希望点赞收藏谢谢!!!

脚本宝典总结

以上是脚本宝典为你收集整理的Java基础【二】 - 值传递和引用传递全部内容,希望文章能够帮你解决Java基础【二】 - 值传递和引用传递所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。