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

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对象引用这块内存。

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

找到那个感觉 就算打开了那个脑洞

本文来自博客园,作者:xiao~xiao,转载请注明原文链接:https://www.cnblogs.com/angin-iit/p/9299243.html

原文地址:https://www.cnblogs.com/angin-iit/p/9299243.html