栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

怎么理解JAVA是引用传递还是值传递

Java 更新时间:发布时间: 百科书网 趣学号

其实这个问题,首先就要先明白常说什么是引用传递,什么是值传递。如果这个没搞懂,就更不要说理解了。引用传递是改地址,值传递不改地址。想象一下,现在张三在北京老家有一栋房子,房子里面有一个苹果。现在张三把钥匙给了小明,这就意味着,他们两个都拥有可能会操作这个房子里的东西了,小明会换成梨子。

好了,User us= new User(‘‘aaa’’)

change(us)

 

public  void  change(uuu){

uuu.setName("bbb")

}

现在有这么两行代码。先说一下,这个change会把us改成bbb。对比上面的,us就是张三这个人,new的对象就是房子包括里面的苹果,aaa就是苹果。uuu是小明,bbb是梨子。

如果我是张三,我要想换成梨子,有两个选择。第一是让别人去把苹果拿出来,授权小明,打开门,苹果拿出来,放个梨子进去,这种情况,房子还在那里,只是东西换了。第二种,授权小明,在另外的地方新建一个房子,放个梨子进去,也同样可以。第一种就是值传递,第二种就是引用传递。

归根结底,引用传递,你授权别人,别人的改变是搞个新的。值传递,你授权别人,别人的改变是替换里面的东西。

回到那个change方法里,不管你在里边怎么改,充其量把值变了,翻不出花样。所以JAVA就是值传递

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/889011.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号