前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM垃圾回收流程「建议收藏」

JVM垃圾回收流程「建议收藏」

作者头像
全栈程序员站长
发布2022-10-01 14:29:08
1730
发布2022-10-01 14:29:08
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

昨天在网易云课堂上看李兴华老师的Java视频,讲到了GC回收垃圾的流程。这部分知识在开发的时候不容易用到,但是懂一点JVM的底层知识,是不是显得我们很有钻研的精神,很踏实呢?

整个流程大概是:

当有新对象产生时,会保存在Eden(伊甸园,万物诞生的地方)中。之后这个对象不会在Eden中久留,它会被保存在年轻代中。而后在进行GC后,在新生代中保留下来的对象会被保存到旧生代中。 如果再有新的对象产生,但是空间不足时。GC先从新生代中回收,再找旧生代,最后都没有空间,就用FullGc来一次大清理,回收全部垃圾。

请看下面流程图(为了加深印象,照着李老师的课堂笔记画的):

JVM垃圾回收流程「建议收藏」
JVM垃圾回收流程「建议收藏」

这个图具体展示了上面描述的垃圾回收过程。

另外了解一道题:

请解释final、finally、finalize 的区别。

final:用于定义不能被继承的类,不能被子类覆写的方法,定义常量;

finally:是进行异常处理时的统一出口

finalize:是Object类的一个方法,(public void finalize() throw Throwable),是定义对象被回收之前的一些操作,无论方法中写了什么,不会影响对象的回收。

最后,今天要记住一段代码:

代码语言:javascript
复制
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String str = sdf.format(date);

SimpleDateFormat类的构造方法中的参数,很麻烦。 这里面的大小写一定要记住。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194818.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月11日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云课堂
云课堂聚焦教培机构 OMO 转型,为机构提供在线及混合式课堂解决方案,极速开课、多向互动、智能沉淀、一键分发,是教培课堂便捷、稳定的教学助手。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档