JVM--理解栈 & 队列 & 栈 + 堆 + 方法区的交互关系
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM--理解栈 & 队列 & 栈 + 堆 + 方法区的交互关系相关的知识,希望对你有一定的参考价值。
1. 深入理解栈 & 队列
1.1 栈
栈: 一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚的物体)。
1.1.1 理解: 为什么main方法先执行,最后结束
请看这段代码:在主方法里面调用了4个方法。
public class Test {
public static void main(String[] args) {
t1();
t2();
t3();
t4();
}
public static void t1() {
System.out.println("t1");
}
public static void t2() {
System.out.println("t2");
}
public static void t3() {
System.out.println("t3");
}
public static void t4() {
System.out.println("t4");
}
}
栈:栈内存,主管程序的运行,生命周期和线程同步; 线程结束,栈内存也就是释放,对于栈来说,不存在垃圾回收问题 一旦线程结束,栈就Over! 栈内存中:
1.1.2 栈里面会存放些什么
- 8大基本类型: byte 、short、 int 、double 、char、 long 、float、 boolean
- 对象引用
- 实例方法(没有用static修饰,也叫非静态方法)
1.1.3 栈溢出异常
package packge01;
public class Test {
public static void main(String[] args) {
t1();
}
public static void t1() {
t2();
}
public static void t2() {
t1();
}
}
1.2 队列
队列:先进先出( FIFO : First Input First Output )
1.3 栈 + 堆 + 方法区的交互关系
以上是关于JVM--理解栈 & 队列 & 栈 + 堆 + 方法区的交互关系的主要内容,如果未能解决你的问题,请参考以下文章
脑筋急转弯:如何用两个栈实现一个队列 && 如何用两个队列实现一个栈