关于 jvm 面试

2020-05-03 22:58:26 +08:00
 zxc1234

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

我只好说没遇到过

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

迷茫~求指教~

4108 次点击
所在节点    程序员
24 条回复
dousha99
2020-05-05 21:04:58 +08:00
@zxc1234 #20 Java 里面除以 0 不是 crash 是 exception: java.lang.ArithmeticException.

不过硬要说的话,除非是内部错误(比如 JNI 库中的或者 JVM 本身的非法内存访问),否则类似与内存耗尽这样的应该导致 crash 的异常也是可以被 catch 的。不过一般情况下不会尝试 catch 这类异常。

其实 crash 更像是一种结果而不是一个过程。JVM 进程异常退出了,我们就认为发生了 crash, 哪怕这只是因为一个没有 catch 到的异常。
zxc1234
2020-05-05 21:11:09 +08:00
@dousha99 也就是说如果 除以 0 没有被捕获,它是有可能导致 jvm 进程异常退出的吧?那我是不是可以理解 除以 0 也可能导致 crash ?

还有平时项目中会遇到内部错误吗?这种情况多吗?我好像没怎么遇到过 JNI 库中的或者 JVM 本身的非法内存访问 这种情况??
dousha99
2020-05-05 21:23:37 +08:00
@zxc1234 #22 是的,可以认为如果 /0 没有捕获也会导致 crash.

至于平时项目,真正能见到的最常见的 crash 算是 NullPointerException, IndexOutOfBoundsError 其次是 OutOfMemoryError. 不过如果平常只是写写 CRUD, 那么在各种框架和静态代码分析的加持下就都很难见到(当然,一旦见到就说明出大事了)。JNI 库的话自己写不经意的话就容易出 segfault. JVM 的非法内存访问就更罕见了。
peachpeach
2020-05-09 15:58:54 +08:00
嵌入式菜鸡弱弱路过,内存问题是基础。
内存不够,会导致 oom,这很常见的。

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

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

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

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

© 2021 V2EX