static关键字:(不管对象有没有创建,初始化类的时候就加载了)(static参与继承树追溯:类初始化时,先找到执行父类(Object)的静态块)
- static修饰的成员变量或者方法从属于类,而不是对象(静态变量和静态方法在JVM中位于方法区,普通方法和普通变量位于堆)
- 静态方法可以找到并调用静态变量,但是却不能找到或者使用非静态方法和变量
- 非静态方法可以查找并使用静态方法或变量
第二条和第三条说静态只能找静态,非静态全能找的原因是静态变量所处的方法区内没有堆内对象的地址,而堆内对象却能找到方法区的类的地址,自然也能找到类内静态变量。 详情请参考https://blog.youkuaiyun.com/qq_38199295/article/details/103236002
public static void main(String[] args) {
//静态方法和静态变量可以通过类名.的方式直接调用
System.out.println(Math.PI);
}