static类型与实例对象本身关系不大
static类型的属性和方法已经脱离对象本身,在进行调用是可以直接使用类型名进行调用,不用实例化对象。
Static定义的属性
- 在定义属性是使用了static类型后,该属性将成为该类型所有对象的公共属性,对该对象进行修改时,所有对象中的该属性都将被修改。
Static定义的方法
- static定义的方法可以在不用进行实例化的情况下直接进行调用。
- static定义的方法不能调用非static定义的属性,但非static定义的方法可以调用static定义的属性。
- 如果需要让要在主类中定义static方法并在主方法中运行,那么前面必须要有public static。
Static代码块
- 静态代码块具有优先运行权,但不管实例化多少给对象,,静态代码块中的代码只执行一次。
JDk1.7后的变化
Java在JDK1.7之前,一直存在一个bug,静态代码块会优先与主方法运行。
在JDK1.7后得到修复,在此之前,可以使用静态代码块代替主方法。