JVM内存管理-运行进数据区域

Posted on 2018-07-12 14:20  慢热并不是缺点  阅读(115)  评论(0编辑  收藏  举报

1,程序计数器,较小的内存空间,存着当前线程执行的行号,每个线程都有一个自己独立的pc,不会抛outOfMemoryError

2,java 虚拟机栈,线程私有,方法执行的时候会创建一个栈帧,存着方法相关的信息,会抛 stackOverflowError,outOfMemoryError

3,本地方法栈,为JVM使用到的native方法服务stackOverflowError,outOfMemoryError

4,java堆,最大的一块内存区,被所有线程共用,只是为了存放对象实例,是GC管理的主要区域,也叫GC堆。这里可细分为 新生代,老年代,或者 Eden,from survivor,to survivor...

5,方法区,被线程共用

6,运行时常量池,是方法区的一部分

other: 有一个   直接内存,NIO,使用native函数,直接分配堆外内存,然后通过java堆中的directByteBuffer对象引用这块内存。

虽然名字各不相同,但都是一块内存区域,名字是为了方便记忆内存存放数据类型的。

Copyright © 2024 慢热并不是缺点
Powered by .NET 8.0 on Kubernetes