image

编辑人: 浅唱

calendar2025-05-22

message3

visits926

使用final修饰的变量是引用不能变,还是引用的对象不能变?

分析&回答

是引用不能变,即对象的指向不能变,但引用的对象即引用里的值是可以变得,因为它又没有用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(); //初始化阶阶段赋值

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:使用final修饰的变量是引用不能变,还是引用的对象不能变?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share