关于 jvm 面试

2020 年 5 月 3 日
 zxc1234

面了某大厂,一面上来就是遇到过 jvm crash 吗

我只好说没遇到过

想问下大家这种 jvm crash 遇到过吗 经常吗

迷茫~求指教~

4659 次点击
所在节点    程序员
24 条回复
hhhsuan
2020 年 5 月 3 日
内存不够就会 crash
mazai
2020 年 5 月 3 日
就是想问你一些调优的经验而已,你没遇到过不就没说了,编也编一个 OOM 的情况了吧,老哥,多半凉了
Mohanson
2020 年 5 月 3 日
就个人经验, divide by zero, 内存越界, 内存未对齐, 超过最大栈深度, 结构化指令嵌套错误都能 crash 掉 vm. 虽然我没用过 JVM, 但按照 Webassembly 虚拟机来说就是这样...
zxc1234
2020 年 5 月 4 日
@mazai oom 是 crash ??
chihiro2014
2020 年 5 月 4 日
@zxc1234 crash (可以理解为崩溃),oom 自然算。不过问 jvm 问题没意义,不如把代码写好点
vk42
2020 年 5 月 4 日
@zxc1234 可能指爆 heap 吧,OOM 一般是 OS 行为,和 JVM 本身关系不大
lewis89
2020 年 5 月 4 日
@vk42 #6 JVM 可以设置堆大小,怎么会没有关系,OOM 不是 bark 调用申请不到物理内存了,而是 JVM 自己抛异常了
lewis89
2020 年 5 月 4 日
@mazai #2 说实话 OOM 遇到的情况也很少,业务代码里面的对象 大多都是栈上的引用指向它们,业务逻辑流程的栈空间一弹出,这些对象基本上就死了,基本上不存在业务代码会 OOM 的情况,OOM 大多发生在框架代码里,它们会使用一些 GCRoots 节点 类的静态变量 会引用这些对象,然后没有释放 才会发生 OOM 的情况
vk42
2020 年 5 月 4 日
@lewis89 好吧,我们这边一般把 jvm 的 OOM exception 叫爆 heap,说 OOM 的话一般是指 OS 的 OOM handler 。怪我没说清……
cheng6563
2020 年 5 月 4 日
用 openj9 时遇到过
pursuer
2020 年 5 月 5 日
@cheng6563 #10 今天刚好碰到一个 libgdx 上 jni 访问越界造成 jvm 崩溃的问题,把源码全部扒出来查了半天最后发现是 openj9 的问题,换上了 zulujdk11 就好了。。。
tension2012
2020 年 5 月 5 日
jvm crash 的时候,会生成一个 hs_err_pidxxx.log, 里面的内容就是会记录 jvm crash 的时候,寄存器,堆,加载的动态库等的情况,要让 jvm crash,其实很简单, 就是执行 kill -11 {pid}, 它就会 crash 掉
fewok
2020 年 5 月 5 日
所以,问这个的意义是什么??考察你之前的公司是否经常 crash ?还是你是否喜欢探索异常处理?
ligiggy
2020 年 5 月 5 日
@fewok 如果你现在面试的公司,有对这方面有要求,他就不会管你之前有没有或者说需不需要从事相关事务。也许这对面试者来说,很不公平,但是面试官并不是出于考察你在前公司的表现为前提的。
mazai
2020 年 5 月 5 日
@ligiggy 老哥正解,其实就是考察你有没有相关的经验,或者对这方面研究的深不深。
yinzhili
2020 年 5 月 5 日
就怕是面试造导弹,工作拧螺丝
zxc1234
2020 年 5 月 5 日
问题是,现在不是很多 crash 都 try catch 住了吗,还问有没有遇到。。。
zxc1234
2020 年 5 月 5 日
@ligiggy
@mazai

楼上
dousha99
2020 年 5 月 5 日
@zxc1234 #17 crash 一般是无法被 catch 的,它和 exception 不同。crash 是发生严重的、不可恢复的错误才会出现的。
zxc1234
2020 年 5 月 5 日
@dousha99 三楼所说的 divide by zero 不就是可以 catch ??还是说 divide by zero 不是 crash ?

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

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

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

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

© 2021 V2EX