首页 > 编程语言 > 详细

Java中值传递和引用传递

时间:2019-12-29 19:39:42      阅读:51      评论:0      收藏:0      [点我收藏+]

以下是我个人的一点看法,有不对的欢迎各位指出来。

在Java中,值传递,是创建一个副本,副本中拷贝了这个变量的值,在调用函数中改变的是这个副本的值,与原变量的数值无关。

引用传递,是创建一个副本,副本中拷贝了这个对象的地址,在调用函数中改变的是该副本所指向的地址。

 

基本类型变量传递:

技术分享图片

输出结果:

技术分享图片

 

 可以看到,num变量在传递进foo函数后,num的值已经传递进来了,但是foo函数修改了这个值,原变量却没有改变。

为什么呢?

如果是同一个变量,修改了一个的值另一个也会发生变化。所以foo()中的num和main()中的num不是同一个变量,只是它们的值都一样,foo()中把原变量的值拷贝了一份,在函数中修改的是拷贝后的副本,所以原变量的值没有发生改变。

 

对象的传递:

同上,在函数中创建了一个副本保存该地址,如果是String类型的传入,原变量String a1 = "123" , 把a1进行传递,

技术分享图片

 

 函数中    a1 =  new String("aaa");  改变的只是a1副本的指向,对原变量没有影响。

技术分享图片

Java中值传递和引用传递

原文:https://www.cnblogs.com/linyaoguo/p/12057726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!