为什么面试官喜欢问某一门语言(比如 go 或者 Python )的内存回收机制?

2022-04-27 13:10:33 +08:00
 a523

我不明白的,如果不了解内存的回收机制,对写代码有什么影响吗?

我已经写 python 8 年了,也不清楚 python 的 GC 具体细节, 但是还没有碰到内存泄露的问题。 是不是有 GC 机制的语言,不会发生内存泄露?

或者面试官仅仅只是依此来判断某个人对某门语言花了多少心思?

15942 次点击
所在节点    Python
164 条回复
kelvansun
2022-04-27 13:15:31 +08:00
对 GC 具体细节的了解就是对语言底层的了解
huangsen365
2022-04-27 13:18:40 +08:00
因为面试官也想知道
icyalala
2022-04-27 13:19:08 +08:00
一门编程语言用了 8 年,连内存回收机制都不愿意去了解一下,那这。。
MoYi123
2022-04-27 13:22:36 +08:00
为什么 java 喜欢问 hashmap, 而 python 基本从来不问 dict 呢?
LeeReamond
2022-04-27 13:23:06 +08:00
@icyalala 感觉也问题不大?

面试为啥问很简单,因为 python 本身也没多少东西,不像 java 还有个 util 库给你问,py 本身也没啥线程支持,除了随便问点 gc 还能问啥。不过一般开发层面确实不需要了解 gc ,一般开发能做到知道所有资源在哪里创建,在哪里释放就可以了,具体怎么释放的说实话也没啥意思,像遇到循环引用之类的情况怎么处理,还有生长降级之类的,确实是写这么多年代码,看过也只是看过而已,毕竟又不要求你自己实现解释器,还真没用相关知识处理过实际问题。
wd
2022-04-27 13:23:44 +08:00
这个就是考量你对细节的理解,你可以写了三年 crud 但是如果你写了三年只懂 crud 那就不一样了..
fishCatcher
2022-04-27 13:26:10 +08:00
说白了就是卷的没东西问了,考这些不如考系统设计
RickyC
2022-04-27 13:31:38 +08:00
也许他自己也不会, 故意为难你
icyalala
2022-04-27 13:34:05 +08:00
@LeeReamond "现在开发用不到的东西,就不必去了解", 让面试官感受到这种态度的话,会很败好感度的。
哪怕说 "我尝试了解过,大概是什么样子,但是现在细节不清楚了" 都会比什么都不说要好。

另外一个,面试要尝试对对方有更全面的了解,就像 Fuzzing 那样,从各方面逐渐达到你的边界,才能理解你的能力范围。
crackhopper
2022-04-27 13:34:39 +08:00
95%的工作用不上深入理解 GC 。但还有 5%的工作是需要理解的。

有 GC 的语言可能由于 GC 有 bug 、或者使用语言的写法是标准里未定义的,都会导致内存泄漏。

以此判断对某门语言花了多少心思,是有这方面考量。另一种隐含的考量是,是否一个人有机会接触到底层细节。一般来说,机会往往是:项目用得特性比较深入,技术含量高;个人自驱动强,不断加深深度触及到了底层技术。不管是那种,都应该是面试官更青睐的人选,后者尤其青睐。
buried
2022-04-27 13:43:30 +08:00
刚毕业被问过 c 的 gc
villivateur
2022-04-27 13:46:14 +08:00
@buried 这人是耍你的吧? C 哪有 GC
codefever
2022-04-27 13:48:17 +08:00
​这些问题在日常开发、维护中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是程序员进阶的必备要求。
buried
2022-04-27 13:52:24 +08:00
@villivateur #12 刚毕业,自己也菜,没底气; 应聘的 java 开发,问的就是 c 的 gc,感觉面试官也心不在焉,我也很纳闷,回答了一通堆内存的管理云云
fiypig
2022-04-27 14:09:55 +08:00
如果问 gc 我会画虎烂下三色标记法
pengtdyd
2022-04-27 14:19:52 +08:00
曾经有一个家公司招聘 nodejs 开发,要求 12 年以上经验。然而 nodejs 的作者才 10 年 nodejs 开发经验。
fanxasy
2022-04-27 14:20:00 +08:00
一个字,卷
yinh0715
2022-04-27 14:22:49 +08:00
因为面试官的问题 也可能是在网络上找的面试题 doge
Kasumi20
2022-04-27 14:26:05 +08:00
@buried free()不就完事了
Leonard
2022-04-27 14:26:22 +08:00
卷就对了。问简单的大家都会,那我怎么选招谁呢,那就问难点的吧,问什么呢,网上搜索一下面试题。

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

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

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

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

© 2021 V2EX