深入理解
Java
垃圾回收机制
一:垃圾回收机制的意义
java
语言中一个显著的特点就是引入了
java
回收机制,是
c++
程序员最头疼的内存管
理的问题迎刃而解,它使得
java
程序员在编写程序的时候不在考虑内存管理。由于有个垃
圾回收机制,
java
中的额对象不在有“作用域”的概念,只有对象的引用才有“作用域”。垃
圾回收可以有效的防止内存泄露,有效的使用空闲的内存;
内存泄露:指该内存空间使用完毕后未回收,在不涉及复杂数据结构的一般情况下,
java
的内存泄露表现为一个内存对象的生命周期超出了程序需要它的时间长度,我们有是也将
其称为“对象游离”;
二:垃圾回收机制的算法
java
语言规范没有明确的说明
JVM
使用哪种垃圾回收算法,但是任何一种垃圾回收算法
一般要做两件基本事情:(
1
)发现无用的信息对象;(
2
)回收将无用对象占用的内存空
间。使该空间可被程序再次使用。
1
。引用计数法(
Reference Counting Collector
)
1.1:
算法分析:
引用计数算法是垃圾回收器中的早起策略,在这种方法中,堆中的每个对象实例都有
一个引用计数器,点一个对象被创建时,且该对象实例分配给一个变量,该变量计数设置
为
1
,当任何其他变量赋值为这个对象的引用时,计数加
1
,(
a=b
,则
b
引用的对象
实例计数器
+1
)但当一个对象实例的某个引用超过了生命周期或者被设置为一个新值时,
对象实例的引用计数器减
1
,任何引用计数器为
0
的对象实例可以当做垃圾收集。 当一个
对象的实例被垃圾收集是,它引用的任何对象实例的引用计数器减
1.
一、垃圾回收机制的意义
Java
语言中一个显著的特点就是引入了垃圾回收机制,使
c++
程序员最头疼的内存管理
的问题迎刃而解,它使得
Java
程序员在编写程序的时候不再需要考虑内存管理。由于有个
垃圾回收机制,
Java
中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃
圾回收可以有效的防止内存泄露,有效的使用空闲的内存。
ps:
内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数据结构的一般情况下,
Java
的内存泄露表现为一个内存对象的生命周期超出了程序需要它的时间长度,我们有时
也将其称为“对象游离”。
二、垃圾回收机制中的算法
Java
语言规范没有明确地说明
JVM
使用哪种垃圾回收算法,但是任何一种垃圾回收算法
一般要做
2
件基本的事情:(
1
)发现无用信息对象;(
2
)回收被无用对象占用的内存空
间,使该空间可被程序再次使用。
评论