浅谈对Java中传参问题的理解

网友投稿 700 2022-10-31

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

浅谈对Java中传参问题的理解

一、传值

java中的传值即传递的是原变量的一个副本。基本的数据类型,如:char,int,double等类型的变量向函数传递的参数,都是变量的副本都属于传值。函数内部不论进行任何操作,都不影响变量本身,影响的只是变量的副本。

二、传引用

从表面上来看,java中的对象类型都是传递的引用,而不是传递的值。然而,java中对象作为实参,传递的实际上还是值,即java中的传参传递的都是值!为什么会这么说?龚老师认为可以从jvm的构成的角度来解释一下自己对这个问题的理解。接下来我们先看一下JVM的结构:

三、JVM的结构及相应的解释

之所以说java中传递的都是值,是因为传递得是内存地址中的数,当然,这个值对于基本类型和对象类型来说意义是不一样的,对于基本类型这个数就是其值本身,传递值的结果就是,改变新的变量的值不影响旧的变量的值;而对于对象来说这个数是它的地址,传递这个值就相当于传递了真实对象的引用,传递了引用或者说是地址的结果就是变化会全局可见。所以说java中的方法都是按值调用的!只不过基本类型和对象类型的"值"的在具体的机制上作用不同。

综上,java中不论是基本类型还是对象,方法调用时,传递的都是值!

1.对于基本类型的变量,相当于操作其副本。

2.对于对象,相当于复制了一个引用,该引用指向的还是原变量的内存区域。

上一篇:Kubernetes第二讲:认识k8s
下一篇:什么时候选Cloud Foundry而不是Kubernetes
相关文章

 发表评论

暂时没有评论,来抢沙发吧~