和程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期和线程相同,描述的是 Java 方法执行的内存模型 。
Java 内存可以粗糙的区分为堆内存(Heap)和栈内存(Stack),其中栈就是现在说的虚拟机栈,或者说是虚拟机栈中局部变量表部分 。(实际上,Java虚拟机栈是由一个个栈帧组成,而每个栈帧中都拥有:局部变量表、操作数栈、动态链接、方法出口信息 。)
局部变量表主要存放了编译器可知的各种数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不同于对象本身,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置) 。
Java 虚拟机栈会出现两种异常:StackOverFlowError 和 OutOfMemoryError 。
StackOverFlowError: 若Java虚拟机栈的内存大小不允许动态扩展,那么当线程请求栈的深度超过当前Java虚拟机栈的最大深度的时候,就抛出StackOverFlowError异常 。
【如何理解Java虚拟机栈】OutOfMemoryError: 若 Java 虚拟机栈的内存大小允许动态扩展,且当线程请求栈时内存用完了,无法再动态扩展了,此时抛出OutOfMemoryError异常 。
Java 虚拟机栈也是线程私有的,每个线程都有各自的Java虚拟机栈,而且随着线程的创建而创建,随着线程的死亡而死亡 。

文章插图
- 连续两个梦,都是分手快十年的她,难到这就是终生难忘的记忆吗该怎么办
- 请问怎么申请黄V呢
- 肯德基,麦当劳,德克士这些企业至今都推出过哪些受到大众欢迎的食品
- 炖羊肉要放哪些配菜,有哪些最佳配菜
- 头条号优质评论是什么呀
- 哺乳期孕妇骨折了,出生三个月母乳喂养的小宝宝怎么办
- 女的相亲点了10只289的大虾,男的果断离开。这件事你怎么看
- 远腓骨及髌骨骨折手术后复查良好,现50天能下地训练吗怎么训练
- 男孩子理科成绩不好,怎么办才好
