为了账号安全,请及时绑定邮箱和手机立即绑定

值传递和引用传递

值传递和引用传递

慕莱坞森 2019-03-21 18:15:41
为什么在java学习中要引入这个值传递和引用传递?也就是说这个值传递和引用传递的作用是什么?
查看完整描述

4 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

值传递应该是拷贝了一个副本,引用传递是将变量直接指向内存中的地址,这个地址中的值变了的话,所有指向它的变量值都变了。比如变量a的值是123456,在内存中的地址是0xxxx,将a引用传值给b,那么b也指向0xxxx,即使修改b的值,也就是修改了该地址中的值,a的值也会改变。但是直接赋值的话他们在内存中的地址就不同了,互不相干。


查看完整回答
反对 回复 2019-04-17
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

许多面向对象编程语言里,都会存在值传递或者引用传递概念。

值传递一般是基本类型的变量,引用传递一般是对象等复杂类型的变量。这两种变量的存储位置是不一样的。基类型存储于栈内存中,复杂类型存储于堆内存中。

出于性能的考虑,如果将一个基本类型的变量赋值给另外一个变量,只是单纯的内存复制。如果是复杂变量,会牵扯到许多东西,复制的效率比较低。所以只能引用传递,也就是地址传递。

说个比喻:如果你需要一块砖,我可以马上拿给你;如果说你需要一座山,我只能告诉你山在那边。


查看完整回答
反对 回复 2019-04-17
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

知足吧少年。到了C和C++里面就是让你操纵指针了。
我的意思是你可以参考一下C系语言里的指针。

查看完整回答
反对 回复 2019-04-17
  • 4 回答
  • 0 关注
  • 453 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号