堆栈方法区直接内存

Posted zhaihua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆栈方法区直接内存相关的知识,希望对你有一定的参考价值。

堆(heap):FIFO,所有线程共享的一块内存,是专门存放对象实例的地方,GC发生在这里。随JVM启动而创建

栈(stack):LIFO,应该叫做虚拟机栈,每个线程私有的,存放该线程调用的方法栈帧,存储局部变量表、操作数栈、程序出口、动态链接等,每一个方法的调用就是入栈出栈的过程。

方法区(non-heap):存放已经加载过的类信息、静态变量、常量等不容易发生GC的信息,由各个线程共享(由静态变量或者常量可推知)。

程序计数器:存放当前程序执行的字节码的行号指示器,如果执行的是native方法,则为undefined。

直接内存:既非Java运行时数据区的一部分,也不是JVM规范定义的内存部分,比Java->Native->内存要快,相对于普通堆内存,直接内存申请所花费的时间更多,但是读写的时间少。

 

以上是关于堆栈方法区直接内存的主要内容,如果未能解决你的问题,请参考以下文章

内存分配及变量存储位置(堆栈方法区常量池方法区静态区)

JVM内存初学 堆栈方法区

JVM内存初学 堆栈方法区

「JAVA」Java基础之堆栈方法区类加载器——JVM内存模型分析

堆栈方法区的区别

Java中堆栈方法区的联系