码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础——JVM内存结构

时间:2017-11-10 12:51:07      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:结果   设置   多个   对象   连接   log   栈帧   符号   style   

一、内存结构图

  技术分享

  程序计数器

    保存着当前线程执行的虚拟机字节码指令的内存地址,使得保证线程切换回来后,还能恢复到原先状态。(本地native丰富则计数器为空)

  虚拟机栈(JVM栈)  

    每创建一个线程时就会对应创建一个Java栈,所以Java栈也是"线程私有"的内存区域,这个栈中又会对应包含多个栈帧,每调用一个方法时就会往栈中创建并压入一个栈帧,栈帧是用来存储方法数据和部分过程结果的数据结构,每一个方法从调用到最终返回结果的过程,就对应一个栈帧从入栈到出栈的过程。

    我们平时说的堆栈堆栈,栈就是指代的这个JVM栈,堆在下文讲解。

  本地方法栈

    与虚拟机栈类似,为本地方法服务。

  方法区

    用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

    方法区中还存在着常量池,常量池包含着一些常量和符号引用(加载类的连接阶段中的解析过程会将符号引用转换为直接引用)。

  

    堆(heap)是存储java实例或者对象的地方,是GC的主要区域,同样是线程共享的内存区域。(进一步可以细分为新生代和老年代

二、控制参数

-Xms设置堆的最小空间大小。

-Xmx设置堆的最大空间大小。

-XX:NewSize设置新生代最小空间大小。

-XX:MaxNewSize设置新生代最大空间大小。

-XX:PermSize设置永久代最小空间大小。

-XX:MaxPermSize设置永久代最大空间大小。

-Xss设置每个线程的堆栈大小。

 

Java基础——JVM内存结构

标签:结果   设置   多个   对象   连接   log   栈帧   符号   style   

原文地址:http://www.cnblogs.com/jiangbei/p/7813748.html

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