staic是一个一个修饰词,被修饰的都是静态资源。
我们首先要清楚静态资源都是在类初始化的时候被加载的,而非静态资源都是在类new的时候被加载的,所以静态资源的加载都是早于非静态资源的,所以静态资源只能访问静态资源。还要清楚静态资源在类实例之间是共享的,一处改变处处改变。
他们都可以通过类名+"."+变量名直接,因为他们可以直接调用不需要new一个对象,所以在静态方法必须实现,不能是抽象方法,并且只能访问静态资源,其中不能有this和super关键字
static修饰代码块static修饰代码块,在类初始化的时候执行一次,并且只执行一次,对于静态代码块我们需要注意的是:
1、静态代码块严格按照父类静态代码块->子类静态代码块的顺序加载的,且只加载一次
2、类中静态资源加载顺序是严格按照静态资源的定义顺序来加载的
3、静态代码块对于定义在它之后的静态变量,可以赋值,但是不能访问
static只能修饰内部类,非静态内部类依赖于外部类的实例,而静态内部类不需要。静态内部类不能访问外部类的非静态的变量和方法;
新特性在JDK1.5之后有import static,使用它导入资源后,我们就不要再使用类名+"."+变量的方式了,可以直接使用方法名



