结论:final 修饰对象,对象的内容可变,引用不可变。
final 应用于类、方法和变量、对象时意义是不同的,但本质是一样的,都表示不可改变。
但是修饰对象时要注意:因为对象是引用类型,存储的是地址,所以final修饰之后,指的是引用地址不可变。
案例:
final char[] chars = {'1','2','3'};//定义final修饰的char数组对象 System.out.println(chars); System.out.println("chars数组地址" + chars.hashCode()); chars[0] = '0'; chars[2] = 'b'; System.out.println(chars); System.out.println("chars数组地址" + chars.hashCode()); char[] chars2 = new char[3];// chars = chars2;//尝试修改对象的引用,结果报错了/*运行结果:123chars数组地址46014195802bchars数组地址460141958*///由此可见,可以修改数组对象内容且数组的地址不会改变,而且不可以修改数组的引用