JVM 内存分配和回收
来源:互联网 发布:算法设计与分析的认识 编辑:程序博客网 时间:2024/05/14 09:04
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收集算法:
1、一个人(对象)出来(new 出来)后会在Eden Space(伊甸园)无忧无虑的生活,直到GC到来打破了他们平静的生活。GC会逐一问清楚每个对象的情况,有没有钱(此对象的引用)啊,因为GC想赚钱呀,有钱的才可以敲诈嘛。然后富人就会进入Survivor Space(幸存者区),穷人的就直接kill掉。
2、并不是进入Survivor Space(幸存者区)后就保证人身是安全的,但至少可以活段时间。GC会定期(可以自定义)会对这些人进行敲诈,亿万富翁每次都给钱,GC很满意,就让其进入了Genured Gen(养老区)。万元户经不住几次敲诈就没钱了,GC看没有啥价值啦,就直接kill掉了。
3、进入到养老区的人基本就可以保证人身安全啦,但是亿万富豪有的也会挥霍成穷光蛋,只要钱没了,GC还是kill掉。
分区的目的:新生区由于对象产生的比较多并且大都是朝生夕灭的,新生代采用复制算法。而养老区生命力很强,采用标记—整理算法。,针对不同情况使用不同算法。
非heap区域中Perm Gen中放着类、方法的定义,jvm Stack区域放着方法参数、局域变量等的引用,方法执行顺序按照栈的先入后出方式。
- JVM内存分配和回收
- JVM 内存分配和回收
- JVM内存分配和回收
- JVM内存分区和内存分配回收
- java jvm 内存分配和回收策略
- JVM内存分配和回收图文详解
- JVM(二)内存分配和回收策略
- 图解JVM内存分配和回收
- JVM垃圾回收和内存分配策略
- JVM内存分配和垃圾回收策略
- JVM内存分配和回收策略
- JVM内存分配与回收
- JVM内存回收与分配
- JVM内存分配与回收
- 最简单例子图解JVM内存分配和回收
- 最简单例子图解JVM内存分配和回收
- JVM的内存分配和垃圾回收机制
- JVM系列-03-内存分配和回收策略
- Activity的任务栈:Activity Task
- Android保存图片到本地
- Java异常原因及解决方法汇总一
- 【PA2009】【BZOJ3498】Cakes
- Java 使用jxls导出小数据量excel文件
- JVM 内存分配和回收
- maven管理项目如何查找jar依赖
- RxJava转换操作符 conactMap
- Java操作FTP(1)
- iOS WebSocket数据包协议详解
- 探索大型网站技术架构(二)
- linux 安装jdk
- 性能优化
- Redis+Sentinel安装与配置