请问jvm是如何是如何执行编译好的class字节码文件的? 在一个文件编译成class字节码文件之后,jvm在装载class文件的时候,jvm要在class中提取哪些相关信息?jvm是怎么执行这些字节码文件呢?不明白其中的原理,请高手们详细解释一下!越详细越好~在线等~!谢谢~! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 执行引擎处于JVM的核心位置,在Java虚拟机规范中,它的行为是由指令集所决定的。尽管对于每条指令,规范很详细地说明了当JVM执行字节码遇到指令时,它的实现应该做什么,但对于怎么做却言之甚少。Java虚拟机支持大约248个字节码。每个字节码执行一种基本的CPU运算,例如,把一个整数加到寄存器,子程序转移等。Java指令集相当于Java程序的汇编语言。 Java指令集中的指令包含一个单字节的操作符,用于指定要执行的操作,还有0个或多个操作数,提供操作所需的参数或数据。许多指令没有操作数,仅由一个单字节的操作符构成。 虚拟机的内层循环的执行过程如下: do{ 取一个操作符字节; 根据操作符的值执行一个动作; }while(程序未结束) 由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中操作数的数量和大小是由操作符决定的。如果操作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16位的参数存放时占用两个字节,其值为: 第一个字节*256+第二个字节字节码。 指令流一般只是字节对齐的。指令tableswitch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。 JVM首先把class字节码文件装载到方法区,那当new一个类对象时,它是不是根据成员变量所占的字节数,成员方法所占的字节数来分配内存呢?当调用这个方法的时候,它又是怎么定位的呢`! java class字节码文件中的类与类之间是怎么样进连接的,怎么把这些类型组织成一张大网,当这个大网组成以后,它又是怎么进行迅速定位的呢? 有没有谁用java做过打印方面的东西 有些疑问 各位,有什么值得推荐的QT书籍? 用java怎么验证一个字符串是手机号码? 使用SWT设计的界面,怎样实现他每次打开的时候居于显示器的中间 做java的swing的gui用什么ide比较好? 【SWT】 如何设置 JFace 的 Dialog 的大小? (100分) 请教! 如何使用Vector来设计一个求平均数的程序?? 疑问求解答,求路过 java读文件的问题 拜托各位高手给指点一下,我们期末考试的设计!万分感激2
取一个操作符字节;
根据操作符的值执行一个动作;
}while(程序未结束) 由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中操作数的数量和大小是由操作符决定的。如果操作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16位的参数存放时占用两个字节,其值为: 第一个字节*256+第二个字节字节码。 指令流一般只是字节对齐的。指令tableswitch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。