今天百度上搜了一下,差点被忽悠成了,存在引用传递,后来想一想不是这样的,java中不存在指针,不存在引用传递。
java
请记住Java只有值传递。函数
被忽悠的表象是,当传递对象时,方法结束后,对象的值变了。spa
【注意:在java中,新建立的实体对象在堆内存中开辟空间,而引用变量在栈内存中开辟空间】指针
栈中存储的就是堆中的地址,在传递对象时,就是堆栈中存储的内容,传递给函数,就是值传递。。。orm
值传递,就是将存储单元中的内容传给调用函数中的那个参数,这里是否是殊途同归,是所谓“值传递”,而非“引用传递”!!!对象
那为何对象内部可以发生变化呢?内存
那是由于:p所指向的那个存储单元中的内容是实体对象的地址,使得p也指向了该实体对象,因此才能改变对象内部的属性!it
这也是咱们大多数人会误觉得是“引用传递”的终极缘由!!!变量