1 什么是数据类型的不变性
不变性是一种重要设计原则,不变数据类型一旦被创建,其值不能改变,在这里我们还需要说一下什么叫做改变一个变量的值:改变一个变量的值是将该变量当前指向的存储空间中写入一个新的值;而改变一个变量是将该变量指向另一个存储空间。
2 在java中如何创建一个不变的引用类型
不变的引用类型是指一旦确定其指向的对象,不能再被改变指向其他对象。在java中我们可以用final来实现不变引用类型的创建,在编译器进行静态类型检查时,如果final变量首次赋值后发生了改变,会提示错误。
final int a=3;
//会报错
a=5;
final String str="hello";
//报错
str="world";
3 使用final时的注意事项
(1) final类无法派生子类。
(2) final变量无法改变值/引用。
(3) final方法无法被子类重写。