java垃圾回收机制

c/c++程序并不知道什么时候内存应该被释放,如果释放了不该释放的内存,将导致系统崩溃;如果无用的内存得不到回收,那么引起系统运行速度下降,甚至导致程序瘫痪,内存泄露

垃圾回收是一件很麻烦的事情,c/c++程序员必须进行显示回收,显示进行垃圾回收的缺点

(1)程序忘记及时回收无用内存,从而导致内存泄漏,降低系统性能

(2)程序错误的回收程序核心类库的内存,从而导致系统崩溃

(3)垃圾回收由jvm后台线程执行,潜在影响系统开销,程序性能(因为jvm需要跟踪所有对象,记录对象状态,需花费处理机时间)

java不需要程序元直接控制内存回收,java的内存分配和回收都是由jre在后台自动进行的(grabage collection),jvm会为新建立的对象分配堆内存,回收的是内存嗯~ o(* ̄▽ ̄*)o

通常jre都是提供一个后台线程来检测和控制,这个后台线程是一个程序,由垃圾回收算法写成,一般都是在cpu空闲或内存不足时自动进行垃圾回收,但是垃圾回收后台线程执行的实际是不固定的! !!释放不再被引用的对象,清楚内存记录碎片,因此android手机应用会卡的原因、

垃圾回收回收的是无用对象的内存空间,也就是对象占用的堆内存,垃圾回收只能回收内存资源,对其他物理资源无能为力

垃圾回收发生时机的不可预知性(cpu空闲/内存耗尽/),程序员即使调用gc()方法也只是建议系统进行垃圾回收,不能精确控制垃圾回收的执行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值