黑马程序员技术交流社区

标题: java- JVM的五个内存区域小总结 [打印本页]

作者: Nick_KJ    时间: 2015-4-9 00:55
标题: java- JVM的五个内存区域小总结
之前看到几个帖子涉及这个内容,所以自己总结了一下,分享给大家。(本来是给一个帖子回复的,打着打着发现打多了,就干脆再发个帖子让大家都能看到吧)

java一共有五个区:堆区,方法区,栈区,本地方法栈,程序计数器。

方法区:是存放虚拟机加载类的相关信息,如类、静态变量和常量;

堆:     所有数组和对象的实例分配都在Java堆上分配内存(比如new的对象);

栈区:在栈帧中包括局部变量表、操作数栈、指向当前方法所属的类的运行时常量池(运行时常量池的概念在方法区部分会谈到)的引用、方法返回地址和一些额外的附加信息。【按毕老师的解释来吧,就是存放局部变量】

本地方发栈:Java栈的作用和原理非常相似。区别只不过是Java栈是为执行Java方法服务的,而本地方法栈则是为执行本地方法(Native Method)服务的。在JVM规范中,并没有对本地方发展的具体实现方法以及数据结构作强制规定,虚拟机可以自由实现它。在HotSopt虚拟机中直接就把本地方法栈和Java栈合二为一。

程序计数器:用来指示执行哪条指令的(我就这么记的)【什么pu寄存器之类的,java应该不是指的那个,而是java自己的程序计数器。原理都是执行哪条语句】

希望能帮到大家。深夜码字,把我给打精神了……本来困的睁不开眼了。祝大家好梦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2