Java参数传递
Posted 壹袋米
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java参数传递相关的知识,希望对你有一定的参考价值。
先给出结论,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参数传递的主要内容,如果未能解决你的问题,请参考以下文章