final关键字
final关键字可以用来修饰类、方法和变量
- final修改的类不能被继承,final类中所有成员方法都会隐式的指定为final方法
- final修饰的方法不能被重写
- final修饰的变量是常量,如果是基本数据类型的变量,则其数值初始化后便不能修改;如果是引用类型的变量,初始化后不能指向另一个对象
说明:使用final方法的原因有两个,一是把防止方法被重写;第二个原因是效率,早起java中final方法会转为内嵌调用,但是方法如果过于庞大,内嵌调用并不会带来性能的提升。类中所有的private方法都隐式的指明为final
static关键字
- 修饰成员变量和成员方法:被static修饰的成员变量属于类,不属于某个对象,被类中所有对象共享,可以并且建议通过类名调用。被static修饰的成员变量属于静态成员变量,静态变量存放在方法区中
- 静态代码块:静态代码块定义在类中方法外,静态代码块在非静态代码块之前执行(静态代码块–>非静态代码块–>构造方法)。该类不管创建了多少对象,静态代码块只执行一次。
- 静态内部类:静态内部类与非静态内部类之间存在的区别为非静态内部类在编译后会隐含保存一个引用,该引用指向创建它的外围类,但是静态内部类却没有,没有这个引用意味着它的创建不需要依赖外部类的创建,它不能使用任何外部类的非static成员变量和方法
- 静态导包:import static XXX 可以指定导入某个类中的指定静态资源并且不需要使用类名嗲用类中静态成员,可以直接使用类中静态成员和方法。
this关键字
this关键字用于引用类的当前实例,这个关键字是可选的。
super关键字
super关键字用于从子类访问父类的变量和方法
- 在构造器中使用super调用父类中其他构造方法时,该语句必须处于构造器首行,否则编译器会报错。另外this调用本类中其他构造方法时,也要放在首行
- this,super不能用在static方法中