一、final的作用
- 被final修饰的类不可以被继承。
- 被final修饰的方法不可以被重写。
- 被final修饰的变量的引用不可变,内容可变。
二、static的作用
(一)静态资源
被static修饰的变量为类变量(静态变量),通过类.变量名引用,不用new出一个类的对象。
被static修饰的方法为类方法(静态方法),通过类.方法名引用,不用new出一个类的对象。
类变量和类变量统称为静态资源,静态资源被类实例所共享。
静态资源是在类初始化的时候加载的,非静态资源是在new的时候加载的,静态块里面的代码只执行一次,且只在初始化类的 时候执行。
注意:
- 静态方法不能引用静态资源。
- 非静态方法可以引用静态资源。
- 静态方法可以引用静态资源。
(二)静态代码块
静态块里面的代码只执行一次,且只在初始化类的时候执行。
注意静态内部类
*注意静态导包很少用,Junit测试时assert
三、类加载顺序
父类静态成员变量,父类静态代码块,子类静态成员变量,子类静态代码块,父类非静态成员变量,父类非静态代码块,父类构造函数,子类非静态成员变量,子类非静态代码块,子类构造函数