jvm-栈的异常和如何设置栈大小

时间:2021-07-11
本文章向大家介绍jvm-栈的异常和如何设置栈大小,主要包括jvm-栈的异常和如何设置栈大小使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1:JVM虚拟机栈是什么?

  java虚拟机栈(java virtual machine stack) ,早期也叫java栈,每个线程在创建是都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应这一次次的java方法调用。

2:生命周期:生命周期和线程一致

3:作用:

  主管java程序的运行,它保存方法的局部变量、部分结果,并参与方法的调用和返回。

 4:栈的特点(优点)

   1)栈是一种快速有效的分配存储方式,访问速度仅次于PC程序计数器。

   2)JVM直接对java栈的操作只有两个:

         a:每个方法执行,伴随着进栈(入栈、压栈)

         c:执行结束后的出栈工作

  3)对于栈来说,不存在垃圾回收问题

5:栈的内部结构:

     1)局部变量

     2)操作数栈

     3)动态链接(或指向运行时常量池的方法引用)

     4)方法返回地址

扩展(也是重要点):何时出现StackOverFlowError?

答:方法运行时,进栈的时候,如果栈的剩余内存大小,小于下一次进栈的数据,那么会抛出 StackOverFlowError

      解决办法:设置栈的大小--》指令 -Xss size ,比如: -Xss250m      默认是使用字节单位,可以在size后面跟上M(MB的简写)、K(KB的简写),大小不区分

原文地址:https://www.cnblogs.com/qq1141100952com/p/15000001.html