浅谈Java垃圾回收机制

在Java中,如果没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。而负责编译的Java虚拟机-JVM的一个系统级线程则自动释放该内存块。垃圾的回收意味着程序不再需要的对象是垃圾信息,会被丢弃。这一设计很好地提高了资源利用,方便了空间被后来的新对象使用。

Java垃圾回收机制特点

1、当一个对象没有被任何引用的时候,java的垃圾回收机制就会自动回收这些对象。

2、强制系统垃圾回收有两种方式:
(1) 调用System类的gc()静态方法:System.gc()
(2) 调用Runtime对象的gc()实例:Runtime.getRuntime().gc()

强调:所谓强制回收,其实也仅仅是一个建议。JVM接受这个消息后,并不是立即做垃圾回收,而只是对几个垃圾回收算法做了加权,使垃圾回收操作容易发生,或提早发生,或回收较多而已。

3、每个类都有一个finalize()方法,来释放对象的资源,但是不推荐使用,尽量少用。在垃圾回收机制回收的任何对象之前,总会先调用它的finalize()方法

对象在内存中的状态

浅谈Java垃圾回收机制_第1张图片

你可能感兴趣的:(java)