
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
昆明IT培训的老师这一期给大家讲虚拟机栈发生内存溢出异常:
能够使虚拟机栈发生内存溢出异常的情形有两种:
线程请求的栈深度超过虚拟机所允许的最大深度,将抛出StackOverflowError异常。
虚拟机在扩展栈时无法申请到足够的内存空间,将抛出OutOfMemoryError异常。
使java虚拟机栈发生内存溢出异常的要旨:
对应情形1,使用不合理的递归
对应情形2,不断创建活跃的线程
使用递归导致虚拟机栈内存溢出异常。
异常信息中的:java.lang.StackOverflowError表明了内存溢出区域为虚拟机栈。
通过创建线程导致虚拟机栈内存溢出异常。
理论上本段代码的运行结果应该是:Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread ,但是由于windows平台虚拟机java线程映射到操作系统的内核线程上。