Java 为什么不采用 360 垃圾清理来进行垃圾回收呢?
最近,庆哥在刷知乎的时候,有一个"专业"问题映入我的眼帘:
来源地址:https://www.zhihu.com/question/36014646
这么专业的问题,我一时间竟不知道该如何回答。截至发文时,这个问题已经有40多万的浏览量了。
那么,我们来看看"人在美国,刚下飞机"的知乎大佬们都是怎么回答的呢?
@陈龙:
因为要跨平台啊。
如果jvm只有Windows就用360了!当初,SUN在这个问题上纠结了很久,最后发现理念不同。
JAVA是write once,run anywhere。
360是install once,uninstallable forever。
@秋水鸣蛙自一天
360 垃圾清理会清理包括无用的注册表,临时文件,IE的浏览文件等众多垃圾文件,扫描位置多,且受制于磁盘 IO 影响,扫描时间很长,清理速度相对较慢。
如果 Java 使用 360 进行垃圾回收,那用 Java 写的程序都会面临很长的垃圾回收等待时间。比如用 Java 写的网站就会出问题,用户访问网站的时候,网页过个几分钟才出来,那这时候用户早崩溃了,所以不能使用 360 垃圾清理进行 Java 垃圾回收。
@易哥
其实360用来清理Java垃圾是不错的,
但是程序员都不太喜欢用。
因为在运行时,360会一直显示“清理程度超过了35%的JVM。”而且这个数值基于大数据得出,比较有参考性。
于是这个数值,成了事实上的Java程序员考核标准。
于是,面试时,面试官会问“你是多少分的程序员?”
你的虚拟机超过了35%的虚拟机,你就是35分程序员。
你的虚拟机超过了98%的虚拟机,你就是98分程序员。
这对于分数低的程序员是赤裸裸打脸。于是,分低的程序员就不想用360回收垃圾。
渐渐的,凡是用360清理虚拟机垃圾的,都是大神。
于是,在大神之中,超越更多人得到一个高分变得更难。
这就是内卷产生的根本原因。
现在,真正的JAVA高手还是使用360清理虚拟机垃圾的。
而不敢用360清理虚拟机垃圾的程序员,都是垃圾程序员!
@萝魏紫
你都说了,360那都是垃圾清理,我们这是垃圾回收,我们是要弄回来再用的,360给扔了,这根本不对。
@熊熊是只土渐层
「你写的程序打败了全国20%的程序,是否需要清理垃圾?」
对于这个问题,你怎么看?
程序员到底为什么要掌握数据结构与算法?
如果ArrayList是个人……