Java:Garbage Collection

GC是什么,描述一下GC的基本原理
垃圾回收器,内存处理时,不当的操作会使程序不稳定或者崩溃,当程序创建对象时,GC就开始监视这个对象的大小内存使用情况等,GC通常采用有向图记录和管理堆中的对象,判断哪些对象不可达,GC就回收这个内存空间。
也可以使用Sysytem.gc()手动回收。
Java中会存在内存泄漏吗?
存在内存泄漏
GC会自动释放那些不需要的对象,以避免大部分的内存泄漏,但是仍然会有。主要有:不再需要的对象引用,未释放的系统资源。
不要的对象引用:通常一个对象被其他对象引用,在线程退出之前,对象不会被收集。
未释放的系统资源:有些是实例以外的堆内存。
垃圾回收的优点和原理
垃圾回收使编写程序的时候不需要考虑内存管理,可以防止内存泄漏,有提高内存管理。垃圾回收器通常作为一个单独运行的线程,在监测到有些对象没有被使用时,会销毁这些对象。比如一个对象被覆为null,或是这个对象超出了作用范围。
有哪些垃圾回收算法
引用计数法:只要有对象引用了A,则计数器++,如果对象计数器为0,则进行销毁。
标记清除法:在标记阶段,首先通过根节点开始标记所有可达的对象,未被标记的就是没有被引用的。在清除阶段,清除所有没有被标记的对象。
复制算法:在正在使用的对象复制到未使用的内存块中,清除掉正在使用的内存块中的所有对象,两个内存块交换。完成了销毁没使用的对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值