hollischuang / toBeTopJavaer

To Be Top Javaer - Java工程师成神之路
https://www.hollischuang.com
25.36k stars 5.47k forks source link

问题,Java值传递时会立即复制并分配空间吗 #63

Open lingjiameng opened 4 years ago

lingjiameng commented 4 years ago

疑问主要在于Java只有值传递那一章,值传递发生后,user和hollis指向的是同一个值0x123456。

按照我的理解,如果是值传递,由于发生了复制,应该是堆中分配了一个新空间,里面也放着0x123456,然后user指向这个新的值

ghost commented 4 years ago

堆不会分配了一个新空间,我的理解是对象的值就是引用,所以传递的只是引用而已。

HD534 commented 4 years ago

只是复制了对象的地址,传递对象的地址;并不是复制了一个对象