JVM仮想マシン

JVMは、主に3つのサブシステムで構成されています

多くのJava仮想マシンだけでなく、ホットスポット(日)、そこJ9、JRockitのあり
3 4 5

1,类加载子系统
2.运行时数据区(内存结果)
3.执行引擎

5ランタイム・データベースは、5つの部分に分かれています

堆   方法区               
虚拟机栈栈   本地方法栈   程序计数器     

程序计数器:指向地址(指向当前线程正在执行的字节码指令的地址)
虚拟机栈:  存储数据(存储当前线程运行方法时所需要的数据,指令,返回地址 (栈是一种数据结构,用来存储数据)

         

スタックフレームのための仮想マシンのスタックは、スタックフレームは、4つの部分に分割される(FILO:最初の最後のアウト)

局部变量表
操作数栈
动态链接
方法出口/返回地址

ここに画像を挿入説明

解決

cmdのコマンド

javac demo1.java  //将java文件编译为class文件
java demo1        //执行class文件
javap -c demo1.class > demo1.txt   //反编译class文件 转到demo1.txt文件中
デコンパイルファイル内容(命令セット)JVM命令セット・リファレンス

CONST:データ保存されたJavaメソッドオペランドスタック
ストア:オペランドスタックローカル変数テーブルに格納されたデータ
のロード:ローカル変数テーブルオペランドスタックにデータをコピー

iconst_1   //将方法中的第一个int型存入栈中(操作数栈)
istore_1  //将操作数栈中的第一个Int推入局部变量表
iload_1   //将局部变量表的第一个Int数据复制到操作数栈
iadd
bipush
公開された172元の記事 ウォンの賞賛0 ビュー5714

おすすめ

転載: blog.csdn.net/weixin_44635157/article/details/104413177