一、原理
static:静态,相对于动态而言。动态是指java程序在JVM运行时,JVM根据程序需要动态创建对象并分配内存。静态是指java程序还未运行时,JVM就会为加载的类分配空间用来存储static修饰的内容。被static修饰的内容储存在方法区中,全局共享,且只会为其分配一次内存。
二、作用
1.修饰代码块
由于类的加载在JVM运行期间只会发生一次,所以静态代码块也只会执行一次。其执行结果保存在方法区中,被线程所共享。
2.修饰成员变量
注意static不能修饰局部变量。
修饰成员变量时,直接用类名.成员变量的方法调用。
不需要显式初始化,JVM会默认给其相应的值。
可能会出现线程安全问题。
3.修饰方法
调用方式同上。
4.修饰内部类
三、使用方法
当类的某些类容不属于对象,由对象共享的时候使用。