分析&回答
是引用不能变,即对象的指向不能变,但引用的对象即引用里的值是可以变得,因为它又没有用final修饰。
基本数据类型的值是不能更改的
比如:final int a=1;a=2;
那肯定编译也过不了,因为a是final修饰的不可改变;a原来指向1,后来指向2;a的指向变了。
引用类型的值是能更改的
比如:final int[] arr= {1,2,3}; arr[0]=2;
这种是可以的。因为arr的指向并没有变 只不过它里边的值可以变。
反思&扩展
final 修饰的变量什么时候赋值?
- final 修饰成员变量是在实例初始化的时候被赋值的。
- final static int a = 1; //准备阶段赋值
- final static Object c = new Object(); //初始化阶阶段赋值
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!