1.栈是先进后出
2.每当运行一个main方法,JVM都会启动一个JVM实例进程
3.基本数据类型的局部变量存放在栈中
4.当一个实例没有任可引用的时候,它就是JVM准备回收的对象(根据垃圾回收的算法回收)
5.栈、堆、方法区都有大小,当超出
6.栈帧:一个线程栈包含多个栈帧,每一个栈帧都代表一个方法的开始到结束,它涵盖方法运行期间的所有操作和数据
7.栈帧的包含内容:局部变量表、操作数栈(压栈,弹栈)、动态链接、方法的返回地址(返回指针)
栈
- 不同的push(bipush、sipush等)指令就是将不同长度的数值进行压栈
- 当局部变量相同时JVM会优化为同一个(即局部变量中不会出现重复的变量)
3.dos命令:第一步:javac 类名+后缀名 第二步:javap –c 类名
永久代(方法区)