分享到:

Java垃圾收集机制研究

1引言Java语言中一个显著的特点就是引入了垃圾收集(Garbage Collection,简称GC)机制。垃圾收集是一种动态存储管理技术,它自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收,在JVM中这一部分功能和算法相应地被称为垃圾收集器(Garbage collector)。垃圾收集的好处是无可争辩的,可靠性提高、使内存管理与类接口设计分离,并使开发者减少了跟踪内存管理错误的时间。悬空指针和内存泄漏问题在Java程序中再也不会发生了(Java程序可能会出现某种形式的内存泄漏,更精确地说是非故意的对象保留,但是这是一个不同的问题)[1]。但是垃圾收集机制是有代价的,其中包括对性能的影响、暂停、配置复杂性和不确定的结束。同时不同类型的应用程序对于垃圾收集有不同的要求,例如实时应用程序会要求收集暂停的持续时间短并且有限制,而企业应用程序可能允许更长时间和可预测性更低的暂停以获得更高的吞吐量。因此Java开...  (本文共3页) 阅读全文>>

华东理工大学
华东理工大学

Java虚拟机垃圾收集机制的研究及优化

虚拟机(Virtual Machine, VM)是相对于我们平常所用的实际的计算机而言的一个概念,它是一个假想的模拟实际计算机进行工作的软件系统。虚拟机的优点之一就是计算机程序可以在不同的操作系统之间复用,即实现程序的跨平台,Java虚拟机的设计思想正体现了这一特点。本文以Java虚拟机中的垃圾收集技术为主要研究对象,比较深入的分析和研究了其中的一些关键技术,并且基于传统的分代式收集算法,提出了一种基于区域标记的动态分代垃圾收集算法。本文的主要工作如下:首先,简要介绍了Java虚拟机当前的应用,较为详细的介绍了Java虚拟机的基本功能及主要组成部分。其次,详细的介绍了目前常用的几种垃圾收集算法。详细的分析了引用计数算法、标记清除、节点复制算法的原理及其优缺点。再次,系统地介绍了传统分代算法的原理,重点论述了传统分代的两个缺点,并针对这两个缺点提出了动态分代的基本策略,然后结合区域标记算法实现了给基于区域标记的动态分代垃圾收集算法...  (本文共68页) 本文目录 | 阅读全文>>

《计算机工程与设计》2006年17期
计算机工程与设计

Java垃圾收集机制及性能调节

0引言Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被引用,则为垃圾对象,可以回收其占据的空间,用于再分配。垃圾收集算法的选择和垃圾收集系统参数的合理调节直接影响着系统性能,因此需要开发人员做比较深入的了解。1垃圾收集算法及其实现1.1垃圾收集基本算法引用计数法、标记清除法和节点复制法是3种基本的垃圾收集算法。在引用计数法中,每一个对象保存着所有其它对象对它的引用数。当有新的引用指向某个对象时,对应的引用数加1,当原有的引用减少时,引用数则减1,当某个对象的引用数减为0时,就可以认为该对象为垃圾对象,可以予以回收。引用计数法的不足之...  (本文共4页) 阅读全文>>

《福建电脑》2007年06期
福建电脑

Java教学中垃圾收集机制问题的探讨

1.引言Java程序设计已在很多院校中被列为计算机专业教学体系中一门重要的主干课。在众多计算机程序设计语言中,Java语言充分体现出了面向对象程序设计语言的众多特点[1]。因此,怎样教好、学好该语言,通过Java语言理解、掌握面向对象程序设计语言的精髓,并能灵活运用去解决实际问题,便成了计算机教学中一个研究的热点。垃圾收集机制是Java的一项关键技术,用于动态存储管理,自动地释放不再被程序引用的对象,按照特定的垃圾收集算法来实现资源自动回收的功能。正因为Java中的垃圾收集机制复杂而特殊,涉及到的多是内存管理问题,这使它成为Java教学中的重点和难点。本人将结合自己的教学经验,对该部分的教学进行一些探讨。2.与C++比较来理解垃圾收集器的作用对比学习是一种很好的学习方式。可以去理解隐藏在语言背后的设计哲理,让我们更好地掌握编程语言的精髓。C、C++在我校是Java的先修课程,在内存管理方面与Java语言作对比去理解垃圾收集机制的...  (本文共2页) 阅读全文>>

《邵阳学院学报(自然科学版)》2007年01期
邵阳学院学报(自然科学版)

关于Java垃圾收集机制的负面影响分析

0引言随着Internet的普及,Java语言作为一种特别适应Internet计算环境,具有良好的平台无关性的面向对象的编程语言也越来越凸现出它在IT界的重要地位.实际上,Java语言源自C++语言,但Java语言在继承C++语言的简洁、灵活、高效的优点的同时,也成功的避免了C++语言中的一些晦涩的结构,譬如说多重继承的问题.而垃圾收集(Garbage Collection,GC)机制的引入,使程序员从内存管理的烦琐的工作中解放了出来,极大地提高了编程的效率.但是,现在很多程序员在充分体验GC带来的方便的同时,却忽视了GC会对系统性能带来的负面影响.1 GC的积极意义在大部分高级语言(比如说C++语言)中,应用系统的内存管理是由程序本身来负责的.程序员必须为内存的动态分配和释放编写相应的代码,这样就对程序员提出了较高的要求,如果程序员定义了某个变量并为其分配了内存空间,但在该对象完成任务之后却没有执行相应的内存释放操作,或者程序...  (本文共3页) 阅读全文>>

中南大学
中南大学

Java虚拟机关键机制研究与实践

Java体系结构包括四个相互关联的技术:Java语言、Java API、class文件和Java虚拟机,其中Java虚拟机是整个体系的核心部分,它使Java程序在不同的计算机系统之间具备高度的可移植性。本文研究虚拟机的类装载器、执行引擎和垃圾收集三方面的机制,所做的工作如下:对类装载器相关方面的阐述,包括class文件格式、常量池解析、双亲委派模型和类的动态装载技术,并对常量池的Utf8_info表进行了改进,传统的类名存储方式是把所有类的全限定名分别存储于Utf8_info表中,此方式产生了许多冗余的信息,改进的方法把类的全限定名分离为不同的结点,减少整个类的字符串在常量池中所占据的大小,这使得在内存有限的系统中装载class文件后能减少对存储空间的占用。对于Java虚拟机的执行引擎,讨论了以堆栈为工作区的机制,介绍了虚拟机的指令系统的功能,探讨了相关的执行技术,最后根据Java虚拟机规范,设计与实现了部分有代表性的虚拟机指令...  (本文共69页) 本文目录 | 阅读全文>>