首页 > 其他 > 详细

堆、栈、方法区、直接内存

时间:2018-08-14 13:10:49      阅读:295      评论:0      收藏:0      [点我收藏+]

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

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

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

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

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

 

堆、栈、方法区、直接内存

原文:https://www.cnblogs.com/zhaihua/p/9473572.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!