JVM-栈

2020-10-25  本文已影响0人  笨比乔治
image.png

8.栈

1.Java虚拟机栈执行的是Java方法,每个线程运行时所需要的栈,称为虚拟机栈。
2.每个栈由多个栈帧组成,对应着每次方法调用时所占用的内存。
3.每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法。
在这里插入图片描述

图 为什么main()先执行,最后结束~

栈:先进后出
桶:后进先出
队列:先进先出( FIFO : First Input First Output )
栈:栈内存,主管程序的运行,生命周期和线程同步; 线程结束,栈内存也就是释放,对于栈来说,不存在垃圾回收问题 一旦线程结束,栈就Over! 栈内存中:

8大基本类型+对象引用+实例的方法

栈运行原理:栈帧 栈满了: StackOverflowError

在这里插入图片描述

图 栈的位置示意图

程序正在执行的方法,一定在栈的顶部~
死循环会造成StackOverflow Error

在这里插入图片描述

图 栈帧图解 栈底部子帧指向上一个栈的方法 上一个栈的父帧指向栈底部方法

上一篇 下一篇

猜你喜欢

热点阅读