- static方法就是没有this的方法。在static方法内部不能调用非静态方法。反过来是可以的。
- 可以编写static代码块来优化程序性能。类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行每个static块,并且只会执行一次。
- 静态变量被所有的对象共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个副本互不影响。
- 静态成员变量虽然独立于对象,但不代表不可可以通过对象去访问,所有的静态方法和静态变量都可以通过对象访问。
public class Main {
static int value = 33;
public static void main(String[] args) throws Exception{
new Main().printValue();
}
private void printValue(){
int value = 3;
System.out.println(this.value);
}
}