
8.栈
1.Java虚拟机栈执行的是Java方法,每个线程运行时所需要的栈,称为虚拟机栈。
2.每个栈由多个栈帧组成,对应着每次方法调用时所占用的内存。
3.每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法。
图 为什么main()先执行,最后结束~
栈:先进后出
桶:后进先出
队列:先进先出( FIFO : First Input First Output )
栈:栈内存,主管程序的运行,生命周期和线程同步; 线程结束,栈内存也就是释放,对于栈来说,不存在垃圾回收问题 一旦线程结束,栈就Over! 栈内存中:
8大基本类型+对象引用+实例的方法
栈运行原理:栈帧 栈满了: StackOverflowError
图 栈的位置示意图
程序正在执行的方法,一定在栈的顶部~
死循环会造成StackOverflow Error
图 栈帧图解 栈底部子帧指向上一个栈的方法 上一个栈的父帧指向栈底部方法
网友评论