static 静态的修饰属性,静态属性和方法是属于该类的所有对象的,可以用类名.静态属性/方法名来访问。用static修饰的代码块表示静态代码块,当Java虚拟机(JVM)加载类时,就会执行该代码块。
static变量
按照是否时静态的类成员变量进行分为两种:静态变量和实例变量。
实例变量实在对象创建时被初始化的,而static修饰的属性,是在加载时被创建并进行初始化,类加载的过程时进行一次,也就是类变量也只会创建一次,static修饰的变量可以修改。
静态方法
静态方法时可以直接通过类名调用,任何的实例也都可以调用,静态方法不能用this和super关键字,不能直接访问所属类的实例变量和实例方法,只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联。
Java中main方法必须写成static的原因,在类加载时无法创建对象,因为静态方法可以不通过对象调用,所以在类的main方法中所在的类加载时就可以通过main方法入口来运行程序
static代码块
static代码块也就是静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不再任何的方法体内,JVM加载类时会执行这些静态代码块,如果static代码块有多个时,JVM将按照它们在类的出现顺序先后依次执行,每个代码块只会执行一次。
final表示常量,一旦创建久不能改变的量,可以修饰变量,方法,类
final标记的局部变量为常量。final标记的成员变量必须在声明的同时赋值,final方法不能被子类重写,final类不能被继承,
static和final一块用表示什么
可以用来修饰成员变量和成员方法,可以简单的称为“全局常量”
对于变量,一旦给值就不可被修改,并且通过类名可以访问
对于方法,表示不可被覆盖,并且通过类名可以访问