Java参数传递对象引用传递失效

产线问题排查,方法传递对象引用但返回后对象一直为空

 

原因:

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

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

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

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

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

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

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

类似的还有String类型。

 

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

posted @ 2019-03-08 11:14  花花牛  阅读(2418)  评论(0编辑  收藏  举报