静态成员存放的位置
首先,我们得明白内存分为五个区域
- 寄存区(程序计数器)
- 本地方法区
- 方法区
- 堆区
- 栈区
在jdk8之前,静态成员(即静态变量和静态方法)都是存储在方法区中。
在jdk8开始,静态成员放在了堆中。
但是,不管是现在的版本,还是以前的版本,存放在哪里我们不太关注,我们要明白:
方法的执行都是在栈中进行的,(不论是静态方法还是成员方法)。每个线程会在栈内存中开辟一个栈,在调用方法时,对应的方法都会在执行这个方法的的线程的栈中创建一个“栈帧”,当方法执行完毕,栈帧被销毁,对应的内存也被释放。
这一路,灯火通明