引用类型的变量里面存储的是引用对象的首地址,所以被final修饰的引用类型的变量里面存的地址是不会改变的,但是地址所在的堆内存空间中的内容是可以改变的- class Person{
- String name;
- int age;
- public static void main(String[] args) {
- final Person p = new Person();
- p.name = "lily";
- p.age = 45;
- }
- }
复制代码 如果对p重新赋值,就会报错,但是对p引用的地址内的内容进行改变却是可以的
如果是基本数据类型final int i = 0;
i不可以再重新赋值 |