Java值传递和引用传递的问题
java传参数的时候是值传递还是引用传递是个很有意思的问题,
一些有几年工作经验的人也会因此而困惑,
面试的时候更是经常有这样的问题,
今天我整理了一下自己对于这个问题的理解,
希望对一些还没弄清楚此问题的人有所帮助
1、基本类型当参数传递的情况
可以这样理解;
在调用another(a)的时候,
a.i的值还是30,
这个时候把a对象的引用复制一份,
把这个复制品传递给another方法,记住是传递的是a对象的引用的复制品,
another方法里面第一步修改a.i=20的时候,
引用的复制品指向的还是a原始的内存,
此时a.i的已经从30变成20了。
然后new了一个新对象,把a指向新的对象,
实际上是把a对象的引用的复制品指向了新对象,
而a对象的实际引用没有改变。
然后打印a.i,是10。
方法结束后打印a.i是20。
说到这里你理解了么
4、对于String类型作参数传递的问题
自己先占个沙发