1 / 19
文档名称:

JAVA垃圾回收.pptx

格式:pptx   页数:19页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

JAVA垃圾回收.pptx

上传人:endfrs 2015/10/18 文件大小:0 KB

下载得到文件列表

JAVA垃圾回收.pptx

相关文档

文档介绍

文档介绍:JVM垃圾回收简介
——简单介绍JVM垃圾回收
概述
JVM垃圾回收介绍
JVM内存分配
垃圾回收
JVM垃圾回收
JVM垃圾回收介绍
JVM的垃圾回收
JVM的垃圾回收指的是回收JVM内存堆内的数据对象
堆是什么
JVM堆内存储所有new、newarray、anewarray和multianewarray等指令建立的对象。
回收是什么
一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收的功能。
JVM垃圾回收介绍
GC的优点
在C++中,对象在被程序结束或被明确的释放前不能被回收。
提高编码效率,不用花费大量时间考虑内存分配和对象的生命周期
但是也有缺点
不能控制对象的生命结束,意味着逻辑不能卸载析构函数中。
在运行GC程序时,JVM会停止运行,对程序效率产生影响,潜在的加大了程序的负担
JVM内存分配
JVM体系结构
只有一个,线程共享,大小不固定,可以被GC
每个线程都会分配一个,内容是下一条指令的地址
主要被GC的地方
每个线程一个,有压栈,出战操作,单位是栈帧
JVM内存分配
新生代:Eden,S0,S1;年老代,
其中s0,s1是完全对等的,在GC时数据互相拷贝。
JVM内存分配
持久代
存储静态变量,常量等。
新生代
伊甸园:新生成的对象放在这里
S0,S1:完全对等
老生代
新生代经过多次GC依然存活的对象
存放大对象(通过参数判断)
存放数组对象,且数组中没有引用外部对象
垃圾回收算法
垃圾回收
检测垃圾对象
回收垃圾对象所使用的空间,并还给程序
经典的引用计数
早期的垃圾回收算法
堆中的每个对象都有一个引用计数。
创建并有指向该对象的引用时,计数置为1
有其他变量被赋值为这个变量的引用时,计数+1
一个引用超过生命周期时,计数-1
计数为0,被视为垃圾
经典的引用计数
优点其实很明显
执行快速,交织在程序的运行中。
对需要不能被打断的长时间运行程序有利
当然缺点也是
无法检测出循环引用
综上所述
现实我们遇到的JVM更有可能使用追踪算法
A < ——> B