为什么 Java 垃圾自动回收,面试的时候还要问垃圾回收机制?

2017-10-05 15:07:04 +08:00
 1536011373
Java 面试必问的就是垃圾回收,为什么 Java 垃圾自动回收,面试的时候还要问垃圾回收机制?
11981 次点击
所在节点    程序员
67 条回复
hantsy
2017-10-05 17:15:37 +08:00
@gam2046 请贵公司还在 Java 哪个版本?

我记得没错的话,应该是 Java 7 (还是更早版本?我记不清了) 都有应用了 AutoClosable 接口,可以使用 `try(资源打开)` 语法,都会自动管理资源(关闭资源)。

https://docs.oracle.com/javase/7/docs/api/java/lang/AutoCloseable.html

你自己看看你用的实现类是哪个。

要是我来写,我也不用去关闭啊,总不会没事闲得蛋痛吧。
EmdeBoas
2017-10-05 17:25:53 +08:00
公司筛人也不好筛啊,就应届生的感觉,那些大厂一个职位可以上百甚至上千人去争……总得用些方法筛人吧,而且我觉得这些知识还是挺有意思的,不怕知识多得没地方用,就怕需要用的时候不知道啊!
gam2046
2017-10-05 18:01:23 +08:00
@hantsy 说出来可能你不信。我还在用的是 Java 1.3,由于运行环境限制。另一个部门的同事是做 web 应用的。Java 条件宽松许多,但是由于不明的原因,他们选型是 1.6 还是 1.7,也没用最新的。
x18960
2017-10-05 18:04:38 +08:00
悲哀,前五楼一半喷子
1536011373
2017-10-05 18:08:41 +08:00
楼主表示已经做了两年的 Java Web 开发,平时也学习了解过 JVM 的知识,摸着良心说,平时开发真的很少很少用到 GC 方面的知识,可能就分析一下 dump 文件用,楼主很菜别喷我
nicevar
2017-10-05 18:33:48 +08:00
有些东西了解一下是有必要的,能写出更高效的程序,真的有很多做开发的以为 Java 是内存自动回收的就随便写,毫无内存管理意识,分配了就不管了,一直到程序不能跑了才开始挠头,以前我带了不少做 android 的就这样,比如 activity 在 destory 的时候不取消 timer 造成 activity 长时间无法回收,程序加载的图片又多,压力测试的时候来回切换就歇菜了
其实招聘的时候这种问题如果是初级程序员你能大致说出原理性的东西就差不多了
hcymk2
2017-10-05 18:36:16 +08:00
前面说的资源用了要关和 java 垃圾回收机制其实没多大关系
stcasshern
2017-10-05 18:38:28 +08:00
其实答案和问题都相对固定啊,的确是面试造飞机,平时拧螺丝,但是这些也的确是区分·工程师和码农的一个标准吧
v2orz
2017-10-05 18:54:05 +08:00
一方面作为高级或者有潜力成为高级,这都是基础必备
另一方面,Java 实在是没多少东西问,面试官也想不出更多东西能考考你们的学习能力或者说基本功了
tscat
2017-10-05 19:03:29 +08:00
@hantsy 你这样问有意思吗?故意挑一个以为很难的题目恶心人。我就问你,两个程序员,其他条件都一样,一个对 jvm 很熟悉,一个听都没听过或者只是听过名字,你要哪一个?
kindjeff
2017-10-05 19:10:40 +08:00
面试已经太套路了,我觉得很不好
murmur
2017-10-05 19:17:29 +08:00
最简单的垃圾回收不就背一下么

真问那种实际上的没做过你也就停留在背上了
HaoyangWei
2017-10-05 19:30:05 +08:00
一些场景上因为性能的要求是要尽量避免 jvm 的自动 GC 的
depress
2017-10-05 19:34:51 +08:00
要调优,不同项目 JVM 参数不同,垃圾回收那边参数也一堆,一般也就高级工调,初中级接触不到,算做个预备,看你有没有往这方面知识延伸,面试初中级这种属于加分项。
patx
2017-10-05 20:12:11 +08:00
JVM 的机制,平时可能用不到,只有在碰到问题时,你才觉得重要。
另外,对 JVM 的深入理解,也能让面试官觉得你是有潜力的,值得被招进公司的。
bumz
2017-10-05 20:17:46 +08:00
正因为垃圾自动回收,所以程序员才必须知道垃圾回收的机制。

因为决定两个程序员差距的,不是不出错误的时候,而是出错的时候。
clearbug
2017-10-05 20:23:17 +08:00
@eightqueen 老铁真相了!我感觉我在公司做的应用就十来个人用的,所以功能实现就行,从来没有 jvm 调优的需求!我感觉中国的公司有百分之八九十都是这样子吧
hantsy
2017-10-05 20:32:56 +08:00
@tscat 我肯定挑没听说过的那个。

我帮朋友公司招过很多人,见过太多自以为是的人。我宁可去教一个什么都不懂,愿意去学的人,不愿意与一个满嘴跑火车而做事挑三捡四各种借口的人处事。
hantsy
2017-10-05 20:35:23 +08:00
@gam2046 这真让我开眼界了。你确定你的是 2017 年的事?
hantsy
2017-10-05 20:38:14 +08:00
@clearbug 调优都是需要的。

但面试扯什么 JVM,GC 原理根本都是扯蛋,在中国不到 1/10000 的公司的工作会和这个相关。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/395511

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX