Java参数引用传递之例外:null

今天写链表的时候写了一个函数,实参是一个空链表,应该是按引用传参,但是在函数内修改了链表,外部的链表没有变化。

原来是null作为参数传递的时候,就不是引用传参了。

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

Java参数引用传递之例外:null

众所周知的是,java中除基本类型外,参数都是引用传递。

但是,有一个例外,就是当实参为null时,其实,它依然是一个值传递。

也就是说,传参为null,不管函数体内用这个参数做了什么,跳出函数体后该参数依然是null

或者说,引用传递退化成为了值传递。

再进一步分析,其实是基本类型和指向null的非基本类型的指针,都在栈而非堆中,而引用传递的是堆内存地址。

类似的还有String类型。

原文地址:https://www.cnblogs.com/Jacck/p/7744424.html