java没有引用传递

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

请记住Java只有值传递。函数

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

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

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

值传递,就是将存储单元中的内容传给调用函数中的那个参数,这里是否是殊途同归,是所谓“值传递”,而非“引用传递”!!!对象

 

那为何对象内部可以发生变化呢?内存

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

这也是咱们大多数人会误觉得是“引用传递”的终极缘由!!!变量

相关文章
相关标签/搜索