final修饰基本类型变量和引用变量区别
程序员文章站
2022-05-27 21:28:01
...
一 概念介绍
1 当使用final修饰基本数据类型时,不能对其重新赋值,不能被改变。
2 当使用final修饰引用类型变量时,它仅仅保证他的地址不变,即一直引用同一个对象,但这个对象完全可以发生改变。
二 final修饰引用类型变量应用
1 代码示例
import java.util.*; class Person { private int age; public Person(){} // 有参数的构造器 public Person(int age) { this.age = age; } // 省略age的setter和getter方法 // age的setter和getter方法 public void setAge(int age) { this.age = age; } public int getAge() { return this.age; } } public class FinalReferenceTest { public static void main(String[] args) { // final修饰数组变量,iArr是一个引用变量 final int[] iArr = {5, 6, 12, 9}; System.out.println(Arrays.toString(iArr)); // 对数组元素进行排序,合法 Arrays.sort(iArr); System.out.println(Arrays.toString(iArr)); // 对数组元素赋值,合法 iArr[2] = -8; System.out.println(Arrays.toString(iArr)); // 下面语句对iArr重新赋值,非法 // iArr = null; // final修饰Person变量,p是一个引用变量 final Person p = new Person(45); // 改变Person对象的age实例变量,合法 p.setAge(23); System.out.println(p.getAge()); // 下面语句对p重新赋值,非法 // p = null; } }
2 运行结果
[5, 6, 12, 9]
[5, 6, 9, 12]
[5, 6, -8, 12]
23
3 结果分析
使用final修饰的引用不能被重新赋值,但可以改变引用类型所引用对象的内容。
上一篇: 上传代码到Git远程仓库(Github)
下一篇: Git 安装配置