Java參數引用傳遞之例外:null


今天寫鏈表的時候寫了一個函數,實參是一個空鏈表,應該是按引用傳參,但是在函數內修改了鏈表,外部的鏈表沒有變化。

原來是null作為參數傳遞的時候,就不是引用傳參了。

 

引自:http://blog.csdn.net/stevesun13/article/details/51922169

Java參數引用傳遞之例外:null

眾所周知的是,java中除基本類型外,參數都是引用傳遞。

但是,有一個例外,就是當實參為null時,其實,它依然是一個值傳遞。

也就是說,傳參為null,不管函數體內用這個參數做了什么,跳出函數體后該參數依然是null

或者說,引用傳遞退化成為了值傳遞。

再進一步分析,其實是基本類型和指向null的非基本類型的指針,都在棧而非堆中,而引用傳遞的是堆內存地址。

類似的還有String類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM