zoukankan      html  css  js  c++  java
  • jvm-虚拟机栈(java栈)

    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)方法返回地址

    6:栈的运行原理:

       1):不同线程的栈帧是不允许互相调用的,即不可能一个栈帧调用另一个栈帧。不存在安全问题

       2):先进先出

     下一遍:栈的内部结构之局部变量表

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

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

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

  • 相关阅读:
    2021.1.18 HTML标签及元素
    嵌入式发展史简述及一些概念
    06 突破512字节的限制 上
    50 排序的工程应用示例
    01 进阶操作系统
    05 主引导程序的扩展-下
    04 主引导程序的扩展-上
    03 调试环境的搭建
    在windows下使用linux命令,GnuWin32的使用.
    gcc -I -L -l区别
  • 原文地址:https://www.cnblogs.com/qq1141100952com/p/15000001.html
Copyright © 2011-2022 走看看