Static关键词作用和用法
静态变量(类变量)、静态方法(类方法):static声明的属性或方法。
静态变量/静态方法生命周期和类相同,在整个程序执行期间都有效。它有如下特点:
- 为该类的公用变量,属于类,被该类的所有实例共享,在类载入时被初始化。
- static变量只有一份。
- 一般用“类名.类变量/方法”来调用。
- 在static方法中不可直接访问非static的成员。
public class TestStatic {
private int id;
private String name;
private String major;
static String school = "清华";
public void run(){
System.out.println("跑");
}
static void school(){
// run();不能在静态方法中调用非静态方法
System.out.println(school);
}
public static void main(String[] args) {
TestStatic testStatic = new TestStatic();
TestStatic.school="北大";
TestStatic.school();
}
} 内存分析;
静态初始化块
构造方法用于对象的普通属性初始化。
静态初始化块,用于类的初始化操作,初始化静态属性。
在静态初始化块中不能直接访问非static成员。
注意事项
静态初始化块执行顺序(学完继承再看这里):
- 上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到类的静态初始化块为止。
- 构造方法执行顺序和上面顺序一样!!
public class TestStatic2 {
static String company;
static {
company = "华为";
printCompany();
}
public static void printCompany(){
System.out.println(company);
}
public static void main(String[] args) {
}
} 执行结果: 
