在java中,final的含义在不同的场景下有细微的差别,in a word,它指的是“不可变的” 1.修饰数据.这里的可以看到被final修饰的变量,值不能被改变,但是 package FinalTest; public class FinalPerson { public String _name; public final int _age; public FinalPerson(String name, int age) { this._name = name; this._age =
1.final修饰的类:不能被其他类继承:2.final修饰的方法:不能被子类重写3.final修饰的变量 先理解两个概念:基本类型变量.引用变量. 基本数据类型变量:存的是数值本身,存放在栈内存中: 引用类型变量:存的是数据的地址,数据存放于堆内存中,引用变量是以间接的方式获取数据的: final修饰的引用变量:一旦给其赋值,就不能被再次赋值(并非:不能改变其值) final String s = "32"; s = "1";//报错 final TestClas
很多时候会容易把static和final关键字混淆,static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变.看下面这个例子: public class Test { public static void main(String[] args) { MyClass myClass1 = new MyClass(); MyClass myClass2 = new MyClass(); System.out.println(myClass1.i); System.ou
当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了. 那么final变量和普通变量到底有何区别呢?下面请看一个例子: public class Test { public static void main(String[] args) { String a = "hello2"; final String b = "he