管于static的介绍:
1、static修饰的变量、方法是属于类所有,而不是某一个实例。
2、只要类被加载java虚拟机就能根据类名在运行时数据区的方法区内找到他们,因此static修饰的变量或者方法可以在任何对象创建之前访问而不无需引用任何对象。
可以通过类名+变量(方法名)来直接访问。
3、static变量
static修饰的变量称为类变量或者是静态变量(属性)
对于静态变量,内存中只有一个拷贝(节省内存空间),在类加载时就分配了内存空间。
对于非静态变量,每创建一个对象实例,就会为实例变量分配一次内存空间,他在内存中可以有多个拷贝,但互相不影响。也可以说他是属于对象实例的变量。
4、静态方法
由于static的加载特性,静态方法中不能使用非静态的属性与方法,也不能使用super、this、abstract等关键字。
但是可以直接使用静态变量与静态方法
5、static代码块
可以有多个,每一个只会被执行一次即类加载的时候。
补充:
静态初始化块和声明静态属性时所指定的初始值都是该类的初始化代码,它们的执行顺序与源程序中的排列相同。