初始类文件:
0000000 ca fe be be:表示他是否是【class】类型的文件
1.每个线程运行时对应的内存,对应一个虚拟机栈
2.每个线程的方法对应一个栈帧(每个方法运行时需要的内存),他的结束随方法结束而结束
3.当方法1 调用方法2 ,方法2 调用方法1 就会变成递归,不断地往虚拟机栈中叠方法1 和方法2,可能会产生栈溢出
xxx.class文件:cmd——>javap -v xxx
iconst_1 | 将整数常量1放入操作数栈 |
istore_1 | 将操作数栈顶元素放入局部变量1 |
iload_1 | 将常量1 放入操作数栈 |
getstatic | 把方法放入栈 |
ldc | 放入常量池 |
iinc 1,1 | 直接在局部变量槽位上进行运算(1号槽位上加1) |
bipush | 把xx放入操作数栈 |
字节码指令 | ... |
常量池载入运行时常量池:
short范围内的数字和字节指令放在一起(bipush:放入操作数栈)
超过short范围的数字放入常量池(ldc)