Jvm(栈)
1、栈是一种数据结构(jvm的栈是线程级的(一个线程一个栈))

*栈:先进后出
*队列:先进先出(FIFO(Fist input Fist Output))

*栈 :栈内存管理的是程序的运行(若是最后的mian方法都出栈了,那就程序结束了)。栈的
栈里面放什么:8大基本数据类型,对象引用,实例的方法
栈的运行原理:栈帧(就是将我们的里面的方法那些放大)
里面有:方法索引(index),输入输出参数,本地变量,class引用,父帧,子帧
第一步:我们先用下面的方法,压栈。这个方法的子帧指向上面的那个方法咯,先将我们指向的子帧弹出去,(上面的方法的父帧是指向下面的方法的)
第二步:就是这上面方法的父帧也就是下面的这个方法也弹出咯
!!!栈肯定是没有gc的,只有方法区和对才有gc垃圾回收器的。(而且99%是调优堆)

2、思考一个问题,为什么main方法先执行最后结束(这里就是将我们这些方法压栈啊,出栈就是这方法执行完了)


3、!!!这里逻辑就是,外面最开始main方法和test方法。我们最开始先执行main方法。将main方法压栈,然后是main调用test方法,再将test方法压栈(在main方法上面)。栈先进后出。所以是上面的test()方法(方法执行完就出栈)先出栈。然后才是main方法(执行完出栈)后出栈。最后当这个main方法出栈了这个程序就完了
4、栈溢出这个东西



6、栈+堆+方法区的交互关系(我们堆我们没去对属性赋值)
