静态成员存放的位置

首先,我们得明白内存分为五个区域

  1. 寄存区(程序计数器)
  2. 本地方法区
  3. 方法区
  4. 堆区
  5. 栈区

在jdk8之前,静态成员(即静态变量和静态方法)都是存储在方法区中。

在jdk8开始,静态成员放在了堆中。

但是,不管是现在的版本,还是以前的版本,存放在哪里我们不太关注,我们要明白:

方法的执行都是在栈中进行的,(不论是静态方法还是成员方法)。每个线程会在栈内存中开辟一个栈,在调用方法时,对应的方法都会在执行这个方法的的线程的栈中创建一个“栈帧”,当方法执行完毕,栈帧被销毁,对应的内存也被释放。

 

posted @ 2022-04-19 15:15  朱在春  阅读(689)  评论(0编辑  收藏  举报