欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA堆区栈区方法区

程序员文章站 2022-03-31 08:20:17
java内存空间的理解...

JAVA堆区栈区方法区理解


java内存空间的理解

 JVM只有一个堆区,所有线程共享,堆区主要存放java运行过程中new出来的对象,对于堆中的对象的生命周期管理由java虚拟机的JVM的垃圾回收机制GC进行回收和管理,类的非静态成员变量也存放在堆中,其中基本数据类型直接保存值,引用数据类型保存引用地址,非静态成员变量可以在类的实例化时开辟空间并初始化。

 每个线程都有一个栈区,栈区主要存放运行期间的一些局部变量,因为方法执行时,被分配的内存就在栈中,故局部变量在栈中,当一段代码执行完毕,栈中所占内存立即释放。
方法区
 JVM只有一个方法区所有进程公用一个方法区,方法区又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。 方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。

类的加载时机
类从被加载到虚拟机内存中,到卸载出内存为止,其生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸载(Unloading)、7个阶段,其中验证、准备、解析3个部分统称为连接(Linking),7个阶段发生顺序如图所示:
JAVA堆区栈区方法区

本文地址:https://blog.csdn.net/weixin_46155048/article/details/109580487

相关标签: java