今天百度上搜了一下,差點被忽悠成了,存在引用傳遞,後來想一想不是這樣的,java中不存在指針,不存在引用傳遞。
java
請記住Java只有值傳遞。函數
被忽悠的表象是,當傳遞對象時,方法結束後,對象的值變了。spa
【注意:在java中,新建立的實體對象在堆內存中開闢空間,而引用變量在棧內存中開闢空間】指針
棧中存儲的就是堆中的地址,在傳遞對象時,就是堆棧中存儲的內容,傳遞給函數,就是值傳遞。。。orm
值傳遞,就是將存儲單元中的內容傳給調用函數中的那個參數,這裏是否是殊途同歸,是所謂「值傳遞」,而非「引用傳遞」!!!對象
那爲何對象內部可以發生變化呢?內存
那是由於:p所指向的那個存儲單元中的內容是實體對象的地址,使得p也指向了該實體對象,因此才能改變對象內部的屬性!it
這也是咱們大多數人會誤覺得是「引用傳遞」的終極緣由!!!變量