码迷,mamicode.com
首页 > 编程语言 > 详细

Java参数传递

时间:2019-11-17 17:47:09      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:交流   img   inf   hang   col   java内存   str   java   alt   

先给出结论,Java中只有值传递 !

 

简单案例01

技术图片

 

 

打印如下

 

技术图片

 

 

 

显而易见并没有修改变量num的值, main函数 和changeNum函数运行在两块相互隔离的内存区域内,

只在main函数中调用changeNum()函数时,将num的值(拷贝一份)作为参数传递过去,

并在changeNum()函数中进行修改,但是无论你如何修改,都无法改变其在main()函数中的值.

 

 

 

 

 简单案例02

技术图片

 

 

 技术图片

 

 

 

打印如下

技术图片

 

 

 

 可以看出person对象的age被修改了,为什么呢, 不是说Java只有值传递的吗?

变量person存的是指向堆内存Pserson对象的内存地址,你把可以理解为内存地址

理解为一把钥匙,相当于把备用钥匙作为参数传给changeAge()函数, 所以自然

能够操作其在堆内存中对象的属性.

 

Java内存模型: https://blog.csdn.net/hejingyuan6/article/details/50489171

 

PS: 以上结论均为个人的通俗理解,若有不对之处,欢迎交流指出.

 

 

Java参数传递

标签:交流   img   inf   hang   col   java内存   str   java   alt   

原文地址:https://www.cnblogs.com/max-home/p/11876952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!