返回信息流问:讲讲java的垃圾回收机制
答:自动回收
问:那如果出现垃圾回收失败导致的溢出错误,怎么定位它是由回收失败导致的?怎么找出哪回收失败?怎么解决?
答:看log
……
以上问答,来自我以前的一次失败的求职面试经历。当时面试者的描述是:“这个问题在网上找不到统一答案,但是每人的答案能折射出他的技术水平”
基于我有一份对于自己是技术渣的认知,后来我又找了周边所有的经验10年+技术大拿问,回答竟然100%都是如此。“没遇到过”,“看log”
抱着求知心理来此一问,因为想知道到底是不是“你的答案能折射出你的技术水平+我身边一堆技术渣”,还是说他问这个问题其实有其他的目的(纯粹为了涮了我?)
这是一条镜像帖。来源:北邮人论坛 / java / #60113同步于 2018/9/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
关于垃圾回收和由回收失败导致的崩溃
echojessicaa
2018/9/3镜像同步40 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
续问:
1. java虚拟机是怎么做到自动回收的?
2. 看哪部分的log,怎么通过log找出没能回收成功的原因来?
【 在 echojessicaa 的大作中提到: 】
: 问:讲讲java的垃圾回收机制
: 答:自动回收
: 问:那如果出现垃圾回收失败导致的溢出错误,怎么定位它是由回收失败导致的?怎么找出哪回收失败?怎么解决?
: ...................
记得以前看过来类似的博客,可以从log中查出难以回收的对象id,然后把堆dump出来看看是哪些类的对象未被回收,然后反过来分析代码中可能有哪些原因导致对象没有被回收,比如被Map一直引用得不到释放。只记得这些。
把堆dump出来,怎么dump?从未操作过,都是log指哪打哪
【 在 nanguohao 的大作中提到: 】
: 记得以前看过来类似的博客,可以从log中查出难以回收的对象id,然后把堆dump出来看看是哪些类的对象未被回收,然后反过来分析代码中可能有哪些原因导致对象没有被回收,比如被Map一直引用得不到释放。只记得这些。
还有,"难以回收的对象"是什么表征呢
【 在 nanguohao 的大作中提到: 】
: 记得以前看过来类似的博客,可以从log中查出难以回收的对象id,然后把堆dump出来看看是哪些类的对象未被回收,然后反过来分析代码中可能有哪些原因导致对象没有被回收,比如被Map一直引用得不到释放。只记得这些。
和主楼的问题,答案不一样吗?
【 在 tonyjansan 的大作中提到: 】
: 续问:
: 1. java虚拟机是怎么做到自动回收的?
: 2. 看哪部分的log,怎么通过log找出没能回收成功的原因来?
: ...................