专业的JAVA编程教程与资源

网站首页 > java教程 正文

16、一个对象被当做参数传递给一个方法,这是值传递还是引用传递

temp10 2024-11-11 13:51:32 java教程 14 ℃ 0 评论

1、Java语言的方法调用只支持参数的值传递,java所有的参数传递都是传递的副本,变量所代表的值的副本,如果通过副本的指向修改了指向中的内容,那么那个指向的地址里的内容确实改变了。如果修改了副本的指向,即给副本重新赋值,那就和原来的变量无关。


16、一个对象被当做参数传递给一个方法,这是值传递还是引用传递

2、基本类型传递的是值的拷贝,传递后互不相关。

引用类型传递的是引用地址值,可能被影响

由于String被final定义所以不可变, 是特殊的引用类型,作用和基本类型一样,传递后不相关,打印原string是不会改变的。


3、值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

引用传递(pass by reference)是指在调用函数时将实际参数的地址直接传递到函数中,那么在函数中对参数所进行的修改,将会影响到实际参数。


4、举一个形象的例子。再来深入理解一下值传递和引用传递

你有一把钥匙,当别人想来你家时,如果你直接把你的钥匙给他了,这就是引用传递。这样,如果他弄折了这把钥匙,那么他交给你的时候,这把钥匙就折了。

你有一把钥匙,当别人想来你家时,如果你复制了一把给他,自己的还在自己手里,这就是值传递,这样他还给你的时候,不会对你自己的钥匙造成影响。

但是,不管是什么情况,别人拿着钥匙在你家画上自己的名字,那肯定会有影响,也就是我们在方法中修改了对象的属性值。

5、核心技术卷一 119-121【4.5】

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表