开发者社区 问答 正文

Java JVM中Java虚拟机栈有什么作用?

Java JVM中Java虚拟机栈有什么作用?

展开
收起
小天使爱美 2020-04-12 21:40:52 1460 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • "java虚拟机也是线程私有的,它的生命周期和线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。 咱们常说的堆内存、栈内存中,栈内存指的就是虚拟机栈。局部变量表存放了编译期可知的各种基本数据类型(8个基本数据类型)、对象引用(地址指针)、returnAddress类型。 局部变量表所需的内存空间在编译期间完成分配。在运行期间不会改变局部变量表的大小。 这个区域规定了两种异常状态:如果线程请求的栈深度大于虚拟机所允许的深度,则抛出StackOverflowError异常;如果虚拟机栈可以动态扩展,在扩展是无法申请到足够的内存,就会抛出OutOfMemoryError异常。"

    2020-04-12 21:41:32 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答分类:
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等