值传递和引用传递的区别
Dec 10, 2019 am 11:50 AM
值传递
值传递是指基本数据类型在方法中的传递,引用传递是指引用数据类型在方法中的传递。
举例来说,如下图程序代码运行所示: (推荐学习:web前端视频教程)
注:int属于基本数据类型,因此在方法中进行传递和引用时,并不会改变该变量的数值
而arr属于数组,是引用数据类型,因此在方法引用时,实际传递的是该数组在堆内存中的物理内存地址,在方法中对该数组进行操作,则会影响到该数组内部的数值,会发生改变
原因:
在java中,基本数据类型作为参数传递的时候叫做值传递,传的是值本身,
值传递:值在该方法中改变属于局部变量改变
当出了该方法就没有作用了(方法中的传递的基本数据类型就属于局部变量)
在java中,方法的传参,引用数据类型,传的是物理内存地址值,当方法中对数组内部的数值进行改变时,并未改变该数组的物理内存地址,所以当返回到主方法中,数组还是指向原来的地址。
当传入arr数组在内存中的地址值后,堆内存中的连续地址发生改变,可以影响数组整体
特例:String /基本数据类型包装类,虽然都是引用数据类型,但是在发生传参的时候,它们传的是值
以上是值传递和引用传递的区别的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前
By DDD

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前
By DDD

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)