Java参数传递之值传递(2)

参数传递完成时,in01与in指向同一个对象,in01对对象的操作等同于in对对象的操作,接着在方法内部执行"in01=new MyInner();",这样in01就指向了一个新的对象,in01所有的操作都与in无关了:

Java参数传递之值传递

综合以上的运行结果与分析,可知java参数传递方式符合值传递。

 三 引用传递 1.什么是引用传递?

将变量自身的内存地址传入方法中,方法中的变量指向方法外的变量,在方法中对变量的操作就是对方法外变量的操作。

2.自定义类型

public class MyInner { public int a; } public class Test{ public void change(MyInner in01) { in01=new MyInner();//使in01指向一个新的对象 in01.a = 1; } @Test public void testDemain() { MyInner in = new MyInner(); in.a = 9; change(in); System.out.println(in.a); } }

实际输出:9

如果采用引用传递,传递完成以后,in01指向in,对in01的操作就是对in的操作,in01指向对象2,那么in也指向对象2,输出1,与实际不符,所以不是采用引用传递

Java参数传递之值传递

不再一一分析其他变量类型,分析后可以发现,java在传递参数时采用的不是引用传递,而是值传递。

简单讲,值传递时方法内外是两个拥有同一指向的变量,引用传递时方法内外是同一个变量。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/323268e92ebd6e7e57ee790534a3616b.html