java虚拟机学习
xiaobo_z
这个作者很懒,什么都没留下…
展开
-
虚拟机栈的动态扩展
虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从电泳直至执行完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。动态扩展函数调用需要使用栈,如果函数调用链很深(递归的时候很常见),栈的空间不够就会出StackOverflow。动态扩展就是在栈空间不够的时候,自动加...转载 2019-05-07 20:27:19 · 2390 阅读 · 0 评论 -
虚拟机栈溢出总结
如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemoryError异常。在单个线程下,无论是由于栈帧太大还是虚拟机栈容量太小,当内存无法分配的时候,虚拟机抛出的都是StackOverflowError异常。在多线程下,通过不断建立线程的方式可以产生内存溢出异常。但是这样产生的内...转载 2019-05-07 20:50:25 · 862 阅读 · 0 评论