Java中的final,finally,finalize关键字
一、final关键字 final 是一个修饰符,在java中它可以修饰类、方法、变量。一旦你将引用声明做final,你将不能改变这个引用了 ,如果你视图将变量再次初始化的话,编译器会报编译错误。final的含义在不同的场景下有细微的差别,但总体来说, 它指的是“不可变”。 final 修饰类时表明这个类不可以被继承。 final 修饰方法时表明这个方法不可以被其子类重写。 final 修饰变量时可分为局部变量、实例变量和静态变量,当 final修饰变量时,该变量的值在初始化后不能发生改变。 修饰局部变量时,该局部变量可以被一次赋值 (可以选择在初始化时赋值或在需要位置赋值,但只能选择一个地方赋值一次), 以后该变量的值不能发生改变 ; 当 final 修饰实例变量时,实例变量必须由程序员在构造器、初始化块、定义时这 3 个位置的其中之一指定初始值 ; 当 final 修饰静态变量时,静态变量必须由程序在静态初始化块、定义时这 2 个位置的其中之一指定初始值 。 finally 是异常处理语句结构的一部分,表示总会执行的代码块。 finalize 是 Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法, 可以覆盖此方法提供垃圾收集时的其他资源回收。但实际上重写该方法进行资源回收并不安全,因为 JVM 并不保证该方法总被调用。 二、final关键字修饰引用类型