jdk1.8后jvm把内存分为三个区域
时间: 2023-09-20 22:08:57 浏览: 103
JVM内存区域划分.docx
jdk1.8后,JVM将内存分为以下三个区域:
1. 堆内存:堆内存是JVM中最大的一块内存区域,用于存储对象实例,即所有通过new关键字创建的对象都存储在堆内存中。堆内存又被分为新生代和老年代,其中新生代又被分为Eden空间和Survivor空间。
2. 方法区:方法区也称为永久代,用于存储类的信息、常量、静态变量、即时编译器编译后的代码等数据。在JDK1.8之前,方法区是一个独立的内存区域,但在JDK1.8后,方法区的实现已经改为与堆内存共享同一个物理内存。
3. 程序计数器:程序计数器是一块较小的内存区域,用于记录当前线程所执行的字节码指令的地址。当线程执行Java方法时,程序计数器会记录下一条需要执行的指令地址,当线程执行Native方法或者线程被阻塞时,程序计数器的值为空。程序计数器是线程私有的,每个线程都有一个独立的程序计数器。
阅读全文