什么是静态变量?
用static修饰的变量成为静态变量。例如每个圆形,都有自己的半径和圆周率,因为圆周率是一个唯一的常数,不用每个圆形对象都拥有,所以圆周率作为共享的,就成为静态变量,静态变量是存在方法区中的,而成员变量是存在堆中的。
什么是静态方法?
静态方法就是在方法前加static关键字,静态方法可以去访问静态变量,因为它们都不需要创建对象,然而不能去访问成员变量。成员变量只能自己去访问:实例对象或者成员方法
什么是静态代码块?
用static修饰的代码块称为静态代码块,静态代码块不管类生成多少个对象,它只会在JVM类加载过程中执行一次,且是最先执行的。一般用它来进行静态属性的初始化。如果不用静态代码块则会在类加载的初始化阶段进行赋值,若是用了代码块,在准备阶段就进行了初始化,而非赋0值了。
总结
| 成员变量 | 静态变量 | |
|---|---|---|
| 关键字 | 无 | 用static修饰 |
| 内存位置 | 堆 | 方法区 |
| 调用方式 | 对象 | 类 |