static关键字
- 修饰属性:静态成员变量
- 修饰方法:静态方法
- 静态成员变量:无论一个类生成了多少个对象,静态成员变量只有一份,
- 一个对象对静态成员变量进行修改,其他对象对该静态成员变量的值也变化
- 静态成员方法:静态方法只能继承不能重写,子类是把父类的静态方法隐藏了
- 静态成员:
- 是属于类的,不属于任何对象
- 因为静态成员是属于类的,所以当类加载完成之后就可以访问了
- 静态成员不能使用this来调用
final关键字
- 修饰类:终态类
- 修饰属性:终态属性(常量)
- 修饰方法:终态方法
- 终态类:不能被继承
- 终态属性(常量):
- 如果基本类型是值不能改变,如果引用类型是指向那一个对象不能改变
- 例如我们可以修改对象里面的成员变量
- 终态方法:不能被重写
- 终态属性系统不会默认值,而要求构造器完成之前必须初始化
- 可选时机一,声明时初始化
- 可选时机二,非静态语句块中初始化
- 可选时机三,构造器中进行初始化
- 终态局部变量初始化值的时间只要在使用值之前就行
静态终态成员变量
- 初始化要求必须在静态语句块结束之前完成
- 初始化时机
- 可选时机一,声明时初始化
- 可选时机二,静态语句块中初始化
static代码块
- 静态代码块先于构造方法执行的
- 因为定义一个类之后,类会生成一个class文件放在硬盘上,
- 再先将class文件从硬盘加载到JVM上,再使用JVM处理它再生成对象
- 静态代码块是类加载的时候执行
- 构造方法是生成对象的时候执行
- 不管类生成多少对象静态代码块只执行一次
- 先执行父类静态代码块再执行子类静态代码块
- 静态代码块作用完成一些初始化工作