分析此类问题只需要知道两点:
- java有两种传参方式,基本类型用传值,包装类型用传引用
- 无论是传值还是传引用,形参都是实参复制后的副本,比如说上图的
p1,p2
都是引用p
复制后形成 .
假设T为String
类型,则类似changeP1(p)
的方法不会改变值,因为'String'类型是final
不能改变原有数据,changeP2(p)
这样的方式会改变p2
的值,但是此时p2
这个引用会指向另一块内存.
分析此类问题只需要知道两点:
- java有两种传参方式,基本类型用传值,包装类型用传引用
- 无论是传值还是传引用,形参都是实参复制后的副本,比如说上图的
p1,p2
都是引用p
复制后形成 .
假设T为String
类型,则类似changeP1(p)
的方法不会改变值,因为'String'类型是final
不能改变原有数据,changeP2(p)
这样的方式会改变p2
的值,但是此时p2
这个引用会指向另一块内存.
本文标题:一张图解决java传值传引用问题
本文链接:https://www.haomeiwen.com/subject/resahftx.html
网友评论