类似的问题,又被人问到了几次,决定还是简单总结一下吧。这个问题,一些老手已经很清楚了,但有时也会很不小心的被XX了一把。
其实问题的核心,就是参数虽然是传的引用,但参数就是参数,他自身是一个本地的局部引用而已,只不过在这个时刻和调用者指向了同一个对象。但并不代表这个局部引用在整个方法调用期间内能始终和调用者保持一致。
下面是2个测试,分别测试可修改的Object和不可修改的
运行结果
15
true
20
false
20
15
true
false
15
false
15
希望这个例子能解开一些初学者的疑问。
更对JAVA面试题和JAVA学习资料,请到JAVA世纪网