`
zyq070
  • 浏览: 20642 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JAVA 中的值传递和引用传递

 
阅读更多

 

       今天碰到一个引用传递的问题,类中创建另个类做为全局变量C,在方法A中修改C的值,然后在方法B中取得修改后的值。一开 始固执的以为不可能实现,以为跳出方法A后对象的值会保持刚创建的样子。

 

       后来看了下java值传递和引用传递的资料,才发现自己错了:

 

        当把Java的基本数据类型(如intchardouble等)作为入口参数传给函数体的时候,传入的参数在函数体内部变成了局部变量,这个局部变量是输入参数的一个拷贝,所有的函数体内部的操作都是针对这个拷贝的操作,函数执行结束后,这个局部变量也就完成了它的使命,它影响不到作为输入参数的变量。这种方式的参数传递被称为"值传递"

 

        而在Java中用对象的作为入口参数的传递则缺省为"引用传递",也就是说仅仅传递了对象的一个"引用",这个"引用"的概念同C语言中的指针引用是一样的。当函数体内部对输入变量改变时,实质上就是在对这个对象的直接操作。

 

       看来以后要多研究最好有证据才能下结论。。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics