您的位置:首页 > 其它

浅谈JV内存结构

2016-04-27 22:24 766 查看
对于JVM自身的物理结构



JVM中的内存主要划分为:方法区,堆区,Java虚拟机栈,本地方法栈,程序计数器栈五个部分

(1)方法区:也称”永久代”,用于存储已经加载的类信息,常量,静态变量以及方法代码。方法区内存大小默认最小值为16MB,最大值为64MB>

运行时常量池:是方法区的一部分,用于存储常量和类中的符号引用.(符号引用:指类名,方法名,字段名等,这些引用就像人的身份证号码一样只能用于区分某一个人。直接引用:类解析时会将这些符号引用转为直接引用,直接引用就指为它们在方法区内存中分配的地址)

(2)堆区:用于存放类的对象实例(所有通过new创建的对象的内存都在堆中分配)。JVM中最大的一块内存,堆内存由JVM启动时创建好,堆大小由参数-Xms和-Xmx设置。
*:-Xms为JVM启动时申请的最小内存,默认为操作系统物理内存的1/64但不超过1G。-Xmx为JVM可以申请的最大内存,默认为操作系统物理内存的1/4但不超过1G。
*:当空余堆内存低于40%时,JVM会增大堆内存到-Xmx指定的大小,当空余堆内存超过70%时,JVM会减小堆内存到-Xms指定的大小。

堆区按存放对象的时间不同又划分为新生代,老年代和永恒代。
新生代(Young):程序新创建的对象都是从新生代分配内存。可通过-Xmn指定新生代的大小。新生代由Eden和两块相同大小的From,To构成。

老年代(Old):用于存放经过多次新生代GC仍然存活的对象。新建的对象也可能直接进入老年代,比如大对象(可通过参数指定)和大的数组对象。

永恒代(Perment):存放类的Meta信息。

(3)Java虚拟机栈:也叫栈区。是由一个个栈帧组成的后进先出的栈式结构,栈帧中存放方法运行时的局部变量、方法出口等信息。当调用一个方法时,就会在虚拟机栈中创建一个栈帧用于存放这些数据,方法调用完时栈帧消失。若方法中又调用了其他方法,则继续在栈顶创建新的栈。

(4)本地方法栈:与虚拟机栈类似,区别是本地方法栈是为Native方法服务的,而java虚拟机栈是为java方法服务的。

(5)程序计数器:最小的一块内存。通过改变计数器的值来选取下一条需要执行的字节码指令。

其他:

1.JVM中堆内存是程序直接能使用的内存,而其他区域内存(方法区/栈区/程序计数器/本地方法栈)是JVM自己使用的,所以也将JVM中内存划为堆区和非堆区(除堆之外的其他内存)。

2.非堆区内存由参数-XX:PermSize和-XX:MaxPermSize指定。前者指定最小的内存大小,后者指定最大的内存大小。

3.程序运行时,JVM会向操作系统申请一块内存,内存的一部分作为堆内存使用,一部分作为非堆内存使用。

对于JVM的学习,两个难点

Java代码编译和执行的整个过程
JVM内存管理及垃圾回收机制

G
M
T

檢測語言
阿尔巴尼亚语阿拉伯语阿塞拜疆语
爱尔兰语爱沙尼亚语巴斯克语
白俄罗斯语保加利亚语冰岛语
波兰语波斯尼亚语波斯语
布尔语(南非荷兰语)丹麦语德语
俄语法语菲律宾语
芬兰语高棉语格鲁吉亚语
古吉拉特语哈萨克语海地克里奥尔语
韩语豪萨语荷兰语
加利西亚语加泰罗尼亚语捷克语
卡纳达语克罗地亚语拉丁语
拉脱维亚语老挝语立陶宛语
罗马尼亚语马尔加什语马耳他语
马拉地语马拉雅拉姆语马来语
马其顿语毛利语蒙古语
孟加拉语缅甸语苗语
南非祖鲁语尼泊尔语挪威语
旁遮普语葡萄牙语齐切瓦语
日语瑞典语塞尔维亚语
塞索托语僧伽罗语世界语
斯洛伐克语斯洛文尼亚语斯瓦希里语
宿务语索马里语塔吉克语
泰卢固语泰米尔语泰语
土耳其语威尔士语乌尔都语
乌克兰语乌兹别克语希伯来语
希腊语西班牙语匈牙利语
亚美尼亚语伊博语意大利语
意第绪语印地语印尼巽他语
印尼语印尼爪哇语英语
约鲁巴语越南语中文简体
中文繁体
阿尔巴尼亚语
阿拉伯语阿塞拜疆语爱尔兰语
爱沙尼亚语巴斯克语白俄罗斯语
保加利亚语冰岛语波兰语
波斯尼亚语波斯语布尔语(南非荷兰语)
丹麦语德语俄语
法语菲律宾语芬兰语
高棉语格鲁吉亚语古吉拉特语
哈萨克语海地克里奥尔语韩语
豪萨语荷兰语加利西亚语
加泰罗尼亚语捷克语卡纳达语
克罗地亚语拉丁语拉脱维亚语
老挝语立陶宛语罗马尼亚语
马尔加什语马耳他语马拉地语
马拉雅拉姆语马来语马其顿语
毛利语蒙古语孟加拉语
缅甸语苗语南非祖鲁语
尼泊尔语挪威语旁遮普语
葡萄牙语齐切瓦语日语
瑞典语塞尔维亚语塞索托语
僧伽罗语世界语斯洛伐克语
斯洛文尼亚语斯瓦希里语宿务语
索马里语塔吉克语泰卢固语
泰米尔语泰语土耳其语
威尔士语乌尔都语乌克兰语
乌兹别克语希伯来语希腊语
西班牙语匈牙利语亚美尼亚语
伊博语意大利语意第绪语
印地语印尼巽他语印尼语
印尼爪哇语英语约鲁巴语
越南语中文简体中文繁体
  
語言功能限100個字符

選項 :歷史 :

幫助 : 反饋關閉
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: