final是Java语言中的一个关键字(java关键字都小写)
1.final表示最终的,不可变的
2.final可以修饰变量、方法、类
final修饰的类无法继承
final修饰的方法无法覆盖,重写
final修饰的变量只能赋一次值
final修饰的引用一旦指向某个对象,则不能再重新指向其他对象,但该引用指向的对象内部的数据是可以修改的。
final修饰的实例变量必须手动初始化,不能采用系统默认值。
final修饰的实例变量一般和static联合使用,称为常量。
public static final double PI = 3.1415926;
-引用也是变量: final Person p1=new Person(20); final修饰的引用只能指向一个对象 只有方法结束,p1才能被垃圾回收器回收!
-final修饰的实例变量,系统不管赋默认值,要求程序员必须手动赋值(在变量后面赋值可以,构造函数里赋值也可以)
-final修饰的实例变量,一般添加static修饰。因为实例变量在堆中,100个对象100份。因此如果实例变量不会改变,则没必要声明为实例变量,最好是静态的,节省内存。static
final 联合修饰的变量称为常量(常量名建议全部大写,每个单词之间采用下划线分隔)
-实际上常量和静态变量一样,区别是常量的指不能变,都存储在方法区,都在类加载时初始化。 -常量一般是公开的:public。
class User{
final int age;
}
局部变量是没有