十四-垃圾回收概述

14.1 什么是垃圾(Garbage)

垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾

如果不及时对内存中的垃圾进行清理,那么这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用,可能导致内存溢出

大厂面试题

蚂蚁金服:
知道哪几种垃圾回收器,各自的优缺点,重点讲一下cms和g1
JVM GC算法都有哪些,目前JDK版本采用什么回收算法
G1回收器下回收过程
GC是什么,为什么会有GC
GC的两种判定方法,CMS收集器和G1收集器的特点
百度:
GC算法,分代回收
垃圾收集策略和算法
天猫:
JVM GC原理,JVM怎么回收内存
CMS特点,垃圾回收算法有哪些,各自的优缺点
滴滴:
java垃圾回收器都有哪些,G1的应用场景,平时如何搭配使用垃圾回收器的
阿里:
什么情况下触发垃圾回收?
如何选择合理的垃圾收集算法
JVM有哪三种垃圾回收器
字节:
system.gc()和runtime.gc()会做什么事情
GC Roots有哪些
CMS回收停顿了几次,为什么要停顿两次

14.2 早期垃圾回收

在早期C/C++早期,垃圾回收基本上是手工进行的。开发人员使用new关键字进行内存申请,并使用delete关键字进行内存释放

MibBridge *pBridge= new cmBaseGroupBridge();
//如果注册失败,使用Delete释放该对象所占内存区域
if(pBridge->Register(kDestroy)!=NO_ERROR)
	delete pBridge;

有了垃圾回收机制后,代码变为:

MibBridge *pBridge=new cmBaseGroupBridge(); 
pBridge->Register(kDestroy);

14.3 Java垃圾回收机制

优点

自动内存管理,无需开发人员手动参与内存的分配和回收,降低内存泄漏和内存溢出的风险
oracle关于垃圾回收的介绍https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/toc.html

担忧

黑匣子,弱化了Java开发人员在程序出现内存溢出时定位问题和解决问题的能力
我们必须对这些“自动化”的技术实施必要的监控和调节

GC作用域
GC主要作用在方法区和堆区

垃圾回收器可以对年轻代回收,也可以对老年代回收,甚至时全堆和方法区的回收,Java堆时垃圾收集器的工作重点

  • 频繁收集Young区
  • 较少收集Old区
  • 基本不动Perm区(元空间)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值