Java方法中参数的值传递和引用传递的问题

将一个对象作为方法的参数时,什么时候才是值传递,即改变参数的值对原来对象的值无影响;什么时候是引用传递,即改变参数的值对原来对象的值有影响。我试了原始类型的参数修改时是无影响的,如int;如果是我自己定义的对象则有影响。今天试了一下InputStream又没有影响了;所以我感觉有点乱,望大神指点迷津。

你自己定义的对象,以及其他对象作为方法参数传时,是引用传递,在接收该参数的方法内改变对象参数的值是会影响到原值的,而Java中八个基本类型的方法参数传递则是值传递,在接收的方法内改变值,也只是改变形式参数,而不会影响到实参追问

那为什么我使用InputStream传递参数时也没有影响呢

追答

你是把InputStream对象当参数传吗

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-12
值传递传递的是内存中的值,引用传递传递的是内存中的地址。
举个例子:
String str = new String("test");
解释:此例子中str值传递传的是test,引用传递传的是str在内存中的地址。
第2个回答  2014-07-13
相似回答