综述java运行中垃圾回收机制

综述java运行中垃圾回收机制

ID:10361869

大小:48.50 KB

页数:2页

时间:2018-07-06

综述java运行中垃圾回收机制_第1页
综述java运行中垃圾回收机制_第2页
资源描述:

《综述java运行中垃圾回收机制》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、综述java运行中垃圾回收机制摘要:java语言作为一中优秀的编程语言,其优秀之因素一个比较重要的方面就是具有自动垃圾回收机制,垃圾回收可以减少程序员的工作量,提升程序的执行效率。本文对垃圾回收机制做了研究说明。中国8/vie  关键词:GC;垃圾回收机制;java;jvm;程序  中图分类号:TP312文献标识码:A:1007-9416(2017)02-0231-01  Java语言由于其良好的跨平台性而得到广泛应用,作为C++的改良语言,java增加了垃圾回收机制,从而避免了C++运行时由于忘记释放对象而带来的内存泄漏问题。Java中,运行需要的对象名称存放在栈中

2、,而该对象实例化后的数据保存在堆中,如果一个栈中的对象不再指向原来堆中的数据时,则这个对象所占用的内存空间就是一个垃圾,Java运行环境中JVM的一个系统线程能及时释放一些无用信息。Java代码执行顺序如图1所示。  从中可知垃圾回收是在一个程序运行块的最后一个环节(实际执行过程中这个过程是循环的,垃圾回收时间是由算法加权得到不可预测)。它是一个动态存储管理技术,自动释放不再被引用的对象,这个释放的过程按照一定的算法来实现。在java中没有c++中的delete命令但是其中系统提供了gc方法回收垃圾。下面对GC机制下的gc方法进行测试:  1测试代码  测试代码如图2

3、所示。  2测试环境  测试环境是在安装jdk和jre的电脑上,通过控制台调用javac编译器编译生成类文件,然后调用java命令执行该类文件,在后面配置-verbosegc参数可以查看程序使用堆内存的情况,如图3所示。  3测试结果  从测试结果截图中可以看到系统共收回848-617=231K的空间,括号里面的125952K表示堆内存总容量,共使用了0.0105963秒。  上面测试中使用了系统gc方法回收垃圾,但是为了减少使用GC而导致的间歇性停顿,尽量不要显式调用系统gc方法。系统GC的触发条件是应用程序空闲时,或者java堆内存不足时,前者是为了不占用系统后期

4、程序运行时间而设置的优化,而后者是强制调用,出现堆内存不足时系统会回收内存用于重新分配,如果内存还是不够的情况下,系统会再进行两次GC调用,如果还是无法满足条件,就会报出内存溢出的错误。  GC在进行垃圾回收时,会首先调用finalize函数,这个函数的作用是释放一些其他做法开辟的内存空间,由于java垃圾回收器默认只知道回收由nealloc函数分配的空间或者打开的文件资源等,java垃圾回收机制不会主动收回,这时候可以在finalize方法中出一些清理工作,需要�Ω煤�数的一个重写工作,在重写的过程中可以对特殊空间进行一些处理。  在垃圾回收机制中,垃圾是要按照一定

5、的算法回收的,通常提供的算法有以下几种:  (1)增量收集法(IncrementalCollecting)。增量收集法是在应用运行的时候运行算法进行垃圾回收,但是在JDK5以后不再使用该算法,此处不叙。  (2)引用计数法(ReferenceCounting)。这是一种比较传统的垃圾回收算法,在某个对象被使用的时候,让引用计数加1,删除某个对象的引用后,就让引用计数减1,如此在一个对象正常引用结束的时候,引用计数为0,在GC回收内存的时候,只用手机引用计数为0的对象。但是这个算法无法解决对象的循环引用。  4结语  垃圾回收机制给程序员的开发带来了极大的便利,垃圾回收

6、能自动释放内存空间,减轻编程的负担。这使Java虚拟机具有一些优点。首先在编程效率方面,垃圾回收机制帮助程序员解决了很多难懂的存储器问题,同时垃圾回收机制提升程序的安全性,保护程序的完整。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。