Java 中只有值传递

来源:互联网 发布:网络硬件设备有哪些 编辑:程序博客网 时间:2024/05/02 01:12

一般讲到参数传递有值传递 和 引用传递.

参数有形参和实参, 形参是指定义在函数中的参数列表, 实参是指调用函数时所传递的对象

首先我们来了解什么是值传递, 值传递就是值参数只能有实参传给形参, 而不能由形参来改变实参.

 

而引用传递, 是可以由形参来改变实参.

 

java中一般需要传递的类型有 基本数据类型(char int byte). 这些类型的变量存在栈中, 传递的时候直接把值内容传递个形参.

 

而如果传递的是普通变量, 我们知道, 在形参中是可以改变实参的内容的.

 

这段代码输出

5

10

但是Java中传递对象时传递的并不是对象中的内容, 而是对象的地址, 所以以上例子并不能说明以上传递为值传递.

下面的例子 我们来尝试改变对象的地址:

 

 

我们发现输出的值没有变化, 也就是说我们没有办法改变实参的地址, 也就是没有办法改变传递的值, 所以我们说java中只有值传递