java的垃圾回收机制浅理解

来源:互联网 发布:扫码软件 编辑:程序博客网 时间:2024/06/05 23:02

首先、java不需要直接控制内存回收,java程序的内存分配和回收都是有JRE在后台自动进行的

JRE回收那些不再使用的内存,这种机制被称为垃圾回收(Garbage Collection,GC)。通常JRE会提供一个后台线程来进行检测和控制,一般都是在CPU空闲或内存不足时自动进行垃圾回收,而程序员无法精确控制垃圾回收的时间和顺序,

java的堆内存是一个运行时数据区,用于保存类的实例,java虚拟机的堆内存中存储着正在运行的应用程序所建立的所有对象,这些对象不需要程序通过代码来显式的释放,而是都交给垃圾回收来负责的。所有的JVM实现都有一个由垃圾回收器管理的堆内存。垃圾回收是一种动态存储管理技术,它自动释放不再被程序引用的对象,按照特定的垃圾回收算法来实现内存资源的自动回收功能。

垃圾回收机制优点:可以很好的提高编程效率。

保护程序的完整性。

      缺点:它的开销影响程序性能。java虚拟机必须跟踪程序中有用的对象,才可以确定哪些对象是没用的,这个过程需要花费处理器的时间。其次,垃圾回收算法还不完善,早先采用的某些垃圾回收 算法不能保证100%收集到所有的废弃内存。

当编写java程序时,一个基本原则是:对于不再需要的对象,不要引用它们。如果保持对这些对象的引用,垃圾回收机制暂时不会回收该对象,则会导致系统可用内存越来越少;当系统可用内存越来越少是,垃圾回收执行的频率就越来越高,从而导致系统的性能下降。

0 0
原创粉丝点击