JVM运行是内存模型

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