Java之static理解
说到关键字static,首先想到了常量,静态变量,本文我总结了下static的用法。
1、静态变量
可以被赋值,便于类访问。
2、静态方法
静态方法与静态变量都可以被private、public修饰。
当JVM加载类时,就会将类的静态方法和静态变量加载到方法区中。且只会加载一次,对所有线程共享,也就说其他线程可以更改方法区中的静态变量。
static final 可以修饰变量和方法,表示常量不可被修改,修饰方法表示方法不可被覆盖,可以通过类名访问。
3、静态代码块
当JVM加载类时,静态代码块只运行一次。因为是先加载到堆内存中,而类的构造器在new时才被加载,所以构造器后于静态代码块运行
静态代码块内部不可直接访问非静态变量和非静态方法。可以通过对方法的类实例化后,再调用方法,或者对其类的变量赋值。
4、有一种内部类叫做静态内部类
静态内部类不需要依赖外部类,而非静态内部类必须持有外部类的引用。
5、静态导包,import static。简化代码。