static关键字可以修饰变量,方法以及内部类,被static修饰的部分可以使用类名直接调用,而不需要通过实例化对象来调用。被static修饰的部分会被存储在JVM的方法区中。
在这里要特别注意static修饰的变量,它属于类变量,并且由于其存放在方法区中,而方法区又属于线程共享区域,所以如果使用多线程来处理用static修饰的变量的时候,要特别注意同步问题;另外一个方面也要注意,就是对static修饰的属性进行赋值是在类加载过程的初始化阶段完成的,在这个阶段JVM会自动调用<clinit>方法,给static变量进行赋值,这也是static变量和成员变量的一个重要区别。