您的位置:首页 > 编程语言 > Java开发

(转)java中引用传递和值传递

2018-08-21 08:11 260 查看

https://www.geek-share.com/detail/2672057126.html

https://www.geek-share.com/detail/2561370440.html

ps:看懂两篇博客的示例

这里我们需要注意的是一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值,这句话相当重要,这是按值调用与引用调用的根本区别

按值传递和按引用传递。按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。

按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。

1、对象是按引用传递的
2、Java 应用程序有且仅有的一种参数传递机制,即按值传递
3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本
4、按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本

按值传递不改变调用前的变量值,是因为方法内部改变的是变量值的一个副本。

按引用传递可以改变对象的值,是因为方法内部修改的是对象地址所对应的内容。方法中传递对象传递的是对象的地址值。对象内容是否变化,主要是看该地址中的内容是否变化。

 在传递对象时候,不需要考虑对象在内存只能够的深浅复制。

深浅复制的区别:对象中的其它对象的引用是否复制为另一份。对象中的所有基本类型的变量都是复制一份副本。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: