码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-08-14 14:26:19      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:heap   虚拟机   操作   EAP   运行时   线程   ack   方法   共享   

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

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

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

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

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

 

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

标签:heap   虚拟机   操作   EAP   运行时   线程   ack   方法   共享   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!