static 关键字总结
- 用于类方法与类成员变量
被static修饰的方法不单属于某个对象,而是被类中的所有对象公有,可以通过类名.方法或对象.方法调用。被static声明的成员变量属于静态变量,在jvm中的方法区存放。可以通过类名.变量或对象.变量调用 - 用于静态代码块
static修饰的代码块定义在类的方法外,先于非静态代码块执行,执行顺序:静态代码块->实例代码块->构造方法。注意:
不管创建多少对象,静态代码块只加载一次。 - 静态内部类
static只能用于内部类,静态内部类实例的创建不依赖于外部类的实例,如:
public class Outer{
class Inner{
static int a;
int b;
}
public static void main (String args[]){
Outer.Inner test=new Outer.Inner();
int c=Outer.Inner.a;
int d=test.b;
}
}
可用外部类的类名调用内部类进行实例化,内部类的静态成员可通过外部类.内部类.调用。其他成员只能用内部类的对象调用。
注意静态内部类不能使用外部类的任何非static成员
- 静态导包
使用 import static 可以指定导入某个类的静态成员,并且不需要类名直接调用。