java没有引用传递

原创
2015/12/21 19:50
阅读数 83

今天百度上搜了一下,差点被忽悠成了,存在引用传递,后来想想不是这样的,java中不存在指针,不存在引用传递。

请记住Java只有值传递。

被忽悠的表象是,当传递对象时,方法结束后,对象的值变了。

【注意:在java中,新创建的实体对象在堆内存中开辟空间,而引用变量在栈内存中开辟空间】

栈中存储的就是堆中的地址,在传递对象时,就是堆栈中存储的内容,传递给函数,就是值传递。。。

值传递,就是将存储单元中的内容传给调用函数中的那个参数,这里是不是异曲同工,是所谓“值传递”,而非“引用传递”!!!

 

那为什么对象内部能够发生变化呢?

那是因为:p所指向的那个存储单元中的内容是实体对象的地址,使得p也指向了该实体对象,所以才能改变对象内部的属性!

这也是我们大多数人会误以为是“引用传递”的终极原因!!!




展开阅读全文
打赏
0
5 收藏
分享
加载中
更多评论
打赏
0 评论
5 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部