这个⾯试题是⼀个朋友在⾯试的时候碰到的,什么时候会抛出OutOfMemery异常呢?初看好像挺简单的,其实深究起来考察的是对整个JVM的了解,⽽且这个问题从⽹上可以翻到⼀些乱七⼋糟的答案,其实在总结下来基本上4个场景可以概括下来。
堆内存溢出
堆内存溢出太常⻅,⼤部分⼈都应该能想得到这⼀点,堆内存⽤来存储对象实例,我们只要不停的创建对象,并且保证GC Roots和对象之间有可达路径避免垃圾回收,那么在对象数量超过最⼤堆的⼤⼩限制后很快就能出现这个异常。写⼀段代码测试⼀下,设置堆内存⼤⼩2M
这个⾯试题是⼀个朋友在⾯试的时候碰到的,什么时候会抛出OutOfMemery异常呢?初看好像挺简单的,其实深究起来考察的是对整个JVM的了解,⽽且这个问题从⽹上可以翻到⼀些乱七⼋糟的答案,其实在总结下来基本上4个场景可以概括下来。
堆内存溢出太常⻅,⼤部分⼈都应该能想得到这⼀点,堆内存⽤来存储对象实例,我们只要不停的创建对象,并且保证GC Roots和对象之间有可达路径避免垃圾回收,那么在对象数量超过最⼤堆的⼤⼩限制后很快就能出现这个异常。写⼀段代码测试⼀下,设置堆内存⼤⼩2M
本文标题:OOM问题以及解决⽅案
本文链接:https://www.haomeiwen.com/subject/bmyairtx.html
网友评论