1.static关键字
static关键字,表述为“静态的,全局的”,被static修饰的资源(变量或方法),可以直接通过类名调用,而不需要实例化
特点
1.static声明的资源只能被初始化一次,且在整个程序编译通过之后,开始运行之前完成初始化;
2.修饰变量,称为静态变量,局部变量(如方法中的变量)不能被static 修饰,因为static就有全局的意思;
3.修饰方法,称为静态方法,静态方法只能调用其他静态资源,不能调用非静态变量,不能应用this和super,因为静态资源的加载先于实例化;
4.被static修饰的变量和方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被该类的所有实例共享
5.修饰内部类(静态类),外部类不需要实例化,可以直接通过外部类名调用
2.final关键字
final关键字,表述为“最终的,不可更改的” 用来修饰类、方法和变量。
特点
1.final修饰的类不能够被继承;
2.修饰的方法不能被重写;
3.修饰的变量为常量,不可修改,且声明常量的同时要给常量赋值。
final关键字修饰的变量,称为常量——常量名称必须都为大写
1.修饰基本数据类型,变量的值不能被改变
2.修饰引用类型(对象),该对象的引用(内存地址)不能被改变,即对其初始化之后便不能再让其指向另一个对象
3.JVM的类加载顺序
static声明的静态资源 > new > {代码块} > 构造方法constructor
或
父类static声明的静态资源>子类static声明的静态资源>new>父类代码块>父类构造方法>子类代码块>子类构造方法