java final关键字
不希望任何人可以随意修改自己的东西的时候可以用final关键字进行修饰
- final是一个关键字,表示最终的,不可变的
- final修饰的类无法被继承
- final修饰的方法无法被覆盖
- final修饰的变量一旦被赋值后,不可重新赋值【不可二次赋值】
- final修饰的实例变量,必须手动赋值,不能采用系统默认值
- final修饰的引用,一旦指向某个对象之后,不能再指向其它对象,那么被指向的对象无法被垃圾回收器回收
只要new一次就会产生一个对象,如果将这个对象的引用用final修饰,则不能再次new这个对象的引用
final Person person=new Person(10);
person=new Person(10);//报错
- final修饰的引用虽然指向某个对象之后不能指向其它对象,但是所指向的对象内部的内存是可以被修改的
- final修饰的实例变量,一般和static联合使用(存储在方法区),被称为常量
常量:实际上常量和静态变量一样,区别在于:
常量的值不能变
常量和静态变量,都是存储在方法区,并且都是在类加载时候初始化
常量一般都是公共的public