6 Java 技术三大特性 [java入门教程]

 
 
2:垃圾回收                                                                      
2.1:什么是垃圾 
在程序运行的过程中, 存在被分配了的内存块不再被需要的情况,那么这些内存块对程
序来讲就是垃圾。 
产生了垃圾, 自然就需要清理这些垃圾,更为重要的是需要把这些垃圾所占用的内存资
源,回收回来,加以再利用,从而节省资源,提高系统性能。 
 
2.2:垃圾回收 
-  不再需要的已分配内存应取消分配(释放内存) 
-  在其它语言中,取消分配是程序员的责任 
-  Java编程语言提供了一种系统级线程以跟踪内存分配 
-  垃圾收集 
-  可检查和释放不再需要的内存 
-  可自动完成上述工作 
-  可在JVM实现周期中,产生意想不到的变化 
许多编程语言都允许在程序运行时动态分配内存,分配内存的过程由于语言句法不同而
有所变化,但总是要将指针返回到内存的起始位置,当分配内存不再需要时(内存指针已溢
出范围) ,程序或运行环境应释放内存。 
在C,C++ 或其它语言中,程序员负责释放内存。有时,这是一件很困难的事情。因为
你并不总是事先知道内存应在何时被释放。当在系统中没有能够被分配的内存时,可导致程
序瘫痪,这种程序被称作具有内存漏洞。 
Java 编程语言解除了程序员释放内存的责任。它可提供一种系统级线程以跟踪每一次
内存的分配情况。在 Java 虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的内
存。垃圾收集在 Java 技术程序的生命周期中自动进行,它解除了释放内存的要求,这样能
够有效避免内存漏洞和内存泄露(内存泄露就是程序运行期间,所占用的内存一直往上涨,
很容易造成系统资源耗尽而降低性能或崩溃) 。 
2.3:提示 
(1) :在 Java 里面,垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功
能和行为。比如垃圾回收什么时候开始,什么时候结束,还有到底哪些资源需要回收等,都
是程序员不能控制的。 
(2) :有一些跟垃圾回收相关的方法,比如:System.gc() , 记住一点,调用这些方法,
仅仅是在通知垃圾回收程序, 至于垃圾回收程序运不运行, 什么时候运行, 都是无法控制的。  
(3) :程序员可以通过设置对象为 null(后面会讲到)来标示某个对象不再被需要了,
这只是表示这个对象可以被回收了,并不是马上被回收。 
来源://作者:/更新时间:2012-11-07
相关文章
评论:
验证码:
匿名评论: