今天寫鏈表的時候寫了一個函數,實參是一個空鏈表,應該是按引用傳參,但是在函數內修改了鏈表,外部的鏈表沒有變化。
原來是null作為參數傳遞的時候,就不是引用傳參了。
引自:http://blog.csdn.net/stevesun13/article/details/51922169
Java參數引用傳遞之例外:null
眾所周知的是,java中除基本類型外,參數都是引用傳遞。
但是,有一個例外,就是當實參為null時,其實,它依然是一個值傳遞。
也就是說,傳參為null,不管函數體內用這個參數做了什么,跳出函數體后該參數依然是null
或者說,引用傳遞退化成為了值傳遞。
再進一步分析,其實是基本類型和指向null的非基本類型的指針,都在棧而非堆中,而引用傳遞的是堆內存地址。
類似的還有String類型。