2016 - 2024

感恩一路有你

jvm把字节码程序与各种不同的 Java源程序如何变成Java字节码?

浏览量:1519 时间:2021-03-16 15:36:22 作者:admin

Java源程序如何变成Java字节码?

默认情况下,编译器会将java文件转换为字节码,以便计算机能够理解它,并手动使用CMD javacxxxx.java文件编译。Java“后缀。除了直接在IDE中调试外,一般来说,代码被输入jar包或war包,最后打包的jar包或war包被发送到在线服务器进行部署。

部署的方法有很多,最基本的方法是通过Tomcat容器进行部署,也可以通过Java命令手动运行jar包中的代码。

在Java代码打包过程中,源代码通常被编译成一个字节码文件,并带有“。“类”后缀。JVM只能识别和解释字节码文件类。

对于已编译的类字节码,您需要使用诸如Java-jar之类的命令来运行已编写的代码;一旦使用Java命令,此时您将实际启动JVM进程。

JVM进程将负责运行这些类字节码文件,这相当于运行我们编写的代码。

要运行这些类字节码文件中的代码,JVM将使用类加载器将编译后的类字节码文件加载到JVM的内存中

执行加载到内存中的类。当JVM需要哪个类时,它将使用类加载器来加载相应的类。

jvm:java代码是如何运行的?

Java 为什么要编译为字节码?

找到的运行时字节码与原始字节码匹配。你在找合适的地方。oraclejdk8/openjdk8的热点VM仍然将字节码放在constmethod对象的末尾。

例如,FN()的第一个字节码放在类文件的左侧,在运行时找到的字节码放在右侧:这个“0xca”操作码是一个断点,表示您在FN()的入口放置了一个Java级别的断点。然后dup后的指令(0x59):原来的指令是LDC(0x12),重写的指令是hotspot VM解释器的内部字节码指令ufastALDC(0xe5),内容也完全对应。下一个:你很困惑。在运行时重写后的字节码仍然是0x06(您只需将其视为0x0b)。

类文件中某些字节码指令的操作数看起来与运行时的不同,因为hotspot VM在加载类时会重写字节码,从常量池索引(constant pool Index)订阅某些指令的操作数到常量池缓存索引。这是因为这些指令需要引用比常量池条目槽更多的信息,并且需要打开更大的数据结构来保存常量池条目的内容。

jvm把字节码程序与各种不同的 jvm是如何解释字节码的 jvm字节码指令

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。