我们都知道final修饰的对象地址值不能改变,如图

final修饰的对象地址不可改变_参数传递

但是把一个用final修饰的对象作为参数传递的时候,地址值可以改变吗?会不会报错呢?如图

final修饰的对象地址不可改变_参数传递_02

因为形参Other other是addOne()方法的变量,这个other只是用来接收方法调用处传递的实参,换句话说,他就是用来保存传过来的 o 的地址值,而形参的Other并没有使用final修饰,所以不会报错。如果addOne的Other也是用final修饰就会报错了,如图:

final修饰的对象地址不可改变_参数传递_03