今天碰到一个引用传递的问题,类中创建另个类做为全局变量C,在方法A中修改C的值,然后在方法B中取得修改后的值。一开 始固执的以为不可能实现,以为跳出方法A后对象的值会保持刚创建的样子。
后来看了下java值传递和引用传递的资料,才发现自己错了:
当把Java的基本数据类型(如int,char,double等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值传递"。
而在Java中用对象的作为入口参数的传递则缺省为"引用传递",也就是说仅仅传递了对象的一个"引用",这个"引用"的概念同C语言中的指针引用是一样的。当函数体内部对输入变量改变时,实质上就是在对这个对象的直接操作。
看来以后要多研究最好有证据才能下结论。。