final关键字
关于java语言当中final关键字:
1、final是一个关键字,表示最终的,不可变的
2、final修饰的类无法被继承
3、final修饰的方法无法被覆盖
4、final修饰的变量一旦被赋值之后,不可重新赋值【不可二次赋值】
5、final修饰的实例变量,必须手动赋值,不能采用系统默认值 final变量必须手动赋值,不能采用系统默认值
//final int age; //编译错误
final int age = 10;
或
final int num;
public FinalTest(){
this.num = 200;
}
6、final修饰的引用,一旦指向某个对象之后,不能在指向其他对象,那么被指向的对象无法被垃圾回收器回收。
final修饰的引用虽然指向某个对象之后不能指向其他对象,但是所指向的对象内部的内存是可以被修改的。
User u = new User(100);
u = new User(200);
final User user = new User(30);
//user = new User (50); //final修饰的引用,一旦指向某个对象之后,不能在指向其他对象,那么被指向的对象无法被垃圾回收器回收。
System.out.println(user.id); //30
user.id = 50;//final修饰的引用虽然指向某个对象之后不能指向其他对象,但是所指向的对象内部的内存是可以被修改的。
System.out.println(user.id); //50
7、final修饰的实例变量,一般和static联合使用,被称为变量。
final修饰的实例变量是不可变的,这种变量一般和static联合使用,被称为常量。
常量定义的语法格式【常量名全部大写,每个单词之间使用下划线连接】
public static final 类型 常量名 = 值