博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
虚拟机相关介绍
阅读量:7090 次
发布时间:2019-06-28

本文共 677 字,大约阅读时间需要 2 分钟。

hot3.png

一、Java堆

    Java堆是和Java应用程序关系最密切的内存空间,几乎所有的对象都存放在其中,并且Java堆完全是自动化管理的,通过垃圾回收机制,垃圾对象会自动清理,不需要显示地释放。
    
    根据垃圾回收机制不同,Java堆有可能拥有不同的结构。最为常见的就是将整个Java堆分为新生代和老年代。其中新生代存放新生的对象或者年龄不大的对象,老年代则存放老年代对象。

    新生代分为Eden区,s0区、s1区,s0和s1区也被称为from和to区域,他们是两块大小相等并且可以互换角色的空间。

    当GC发送的时候,如果首先清理的是s0区,把不用的对象清理,把在使用的复制到s1区;如果再次清理的是s1区,同样的原理。

    绝大多数情况下,对象首先是分配在Eden区,再一次新生代回收后,如果对象还存活,则会进入s0或者s1区。之后每经过一次新生代回收,如果对象存活则它的年就加1,当对象达到一定的年龄后,则进入老年代。

二、垃圾回收算法:

    复制算法:其核心思想就是将内存分为两快,每次只使用其中一块,在垃圾回收时,将正在使用的内存中的存留对象复制到未被使用的内存块中去。之后去清楚之前正在使用的内存块中所有的对象,反复去交换两个内存中的角色,完成垃圾收集。

    (Java中新生代的from和to空间就是使用这个算法)。
标记压缩算法:在标记清除法基础之上做了优化,把存活的对象压缩到内存一端,而后进行垃圾清(Java中老年代使用的就是标记压缩算法)。
  三、相关参数的详细配置

转载于:https://my.oschina.net/u/2380961/blog/919770

你可能感兴趣的文章
在使用ibatis实现多条件模糊查询的语句
查看>>
童宁_下一代数据中心的安全挑战
查看>>
android 3g状态及信号监测
查看>>
开源 java CMS - FreeCMS2.8 站点管理
查看>>
JSP中include指令和include行为区别
查看>>
关于zend studio 9.0版本汉化
查看>>
java web编程学习6
查看>>
CSS学习笔记——最基础的定义与使用
查看>>
形象的网络状况工具
查看>>
linux下mysql的root密码忘记解决方法
查看>>
Test
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
范围分为
查看>>
一致性Hash算法(Consistent Hash)
查看>>
update the drawPictures
查看>>
Java中throw和throws的区别
查看>>
线程池
查看>>
人生路上的得与失,我要重新起航
查看>>
利用移动硬盘安装windows7系统
查看>>
Windows mobile UI
查看>>