栈是数据结构(Stack),

    特点: 入口和出口只有一个
    操作就两个: 入栈和出栈 所有的操作都从栈顶出去
    执行特色: 先进后出

    出栈顺序 入栈顺序
    为什么要jvm要用栈? - 图1

    入栈
    Java执行方法的时候
    A方法先入栈, 此时A方法调用了B方法,所以B方法也要入栈,在A方法的上面
    如果来了C方法,此时C方法入栈,在B方法的上面,最后栈从上到下就是CBA的顺序.

    Java顺序执行的ABC三个方法, 此时栈里面就是 CBA的顺序

    出栈
    C方法先出栈,因为C方法在最上面,然后B方法才能出栈,最后A方法才能出栈

    为什么要jvm要用栈?

    因为可以很好的兼容方法调用方法的特点, 假如A调用B,B调用C, 然后C在最上面,C就先执行完, 执行完了才开始执行B,然后执行A.

    结果就是A方法最先开始,A方法最后结束, B方法最先开始B方法最后结束.