final关键字的基本知识(必须掌握)
- final表示最终的,不可变的。也是final单词翻译过来的中文意思
- final修饰的方法无法被覆盖,无法被重写
- final修饰的类无法被继承
- final修饰的表示最后的不能变的,不能被修改的
- final修饰的局部变量一旦被赋值不能被修改,final修饰的变量只能被赋一次值
- final修饰的引用:
- 该引用只能指向一个对象,并且它只能永远的指向该对象,无法在指向其他对象,并且在该方法执行过程中,该引用指向对象之后,该对象不会被垃圾回收期回收,直到当前方法结束,才会释放空间
- 虽然final的引用指向对象A后,不能在重新指向对象B,但是对象A内部的数据可以被修改
- final修饰的实例变量,系统不管赋默认值,要求程序员自己必须手动赋值
- final终极结论:
- final修饰的实例变量,系统不负责赋默认值,要求程序员必须手动赋值。这个手动赋值,在变量后面赋值可以,在构造方法中赋值也可以
- static和final联合修饰的变量称为“常量”,常量名建议全部大写,每个单词之间采用下划线衔接
public class Student{
private int id;//学生id
private String username;//学生姓名
//这里就是定义了一个常量,因为一个班学生可能就是中国的,
//为了不反复的去定义,可以选择直接定义常量
private static final String COUNTRY_NAME = "中国";
}
- 常量的值不能变
- 常量和静态变量,都是存储在方法区,并且都是在类加载时初始化
最后的最后,就是记住final英文单词的翻译就是:最后的、最终的。也就是说一个东西都到了最后了它就是不可改变的了,只要用它修饰了都是最终的东西了,比如说写的文档或者项目有一个最终版,就相当于已经确定了,就别在改变它就好了。