Java_垃圾回收机制

概述

众所周知,C++要手动释放内存。而Java的垃圾回收机制避免了这一点,JVM中有一个叫作垃圾回收器的东西,可以帮助程序员管理内存。垃圾回收机制虽然方便了编程,但是牺牲了性能。

垃圾回收机制原理

JVM中有一个叫作垃圾回收器的东西(实际上也许这个东西并不存在),垃圾回收器的作用是查找和回收无用的对象,以便让JVM更好的使用内存。

当一个对象没有任何对象指向它的时候,这个对象就是无用的,于是它就成为了垃圾回收器的回收对象。但是有一点必须注意,当一个对象变得无用的时候,它并不会立马被垃圾回收器回收,至于什么时候被回收,这要取决于JVM。JVM的垃圾回收过于频繁的话,会导致性能下降,过于稀疏的话,会导致内存吃紧,但是JVM会控制好垃圾回收的时间。

程序员可以通过System.gc()来强制垃圾回收,但是这个命令下达后无法保证垃圾回收器立即工作,但经验表明,下达命令后,会在短期内执行你的请求

finalize()方法

当一个对象被垃圾回收器回收之前,这个对象的finalize()方法将会被调用(finalize()在Object中被定义,所以每个对象都拥有),finalize()方法负责在对象被清除之前做必要的清理工作。

正常情况下,当某个对象被系统收集为无用信息的时候,finalize()将被自动调用,但是jvm不保证finalize()一定被调用,也就是说,finalize()的调用是不确定的,这也就是为什么sun不提倡使用finalize()的原因


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值