微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java中.class文件的用途

我试图了解.class文件如何在 java中工作以及它们的用途是什么.我在网上找到了一些信息,但我得到了不满意的解释.

一旦我们运行编译器,我们就会得到.class文件,它是字节码.这台机器是否可读?如果没有,这就是为什么我们需要程序的解释器才能成功运行?

此外,由于.class文件相当于我们的.java程序,为什么有人不能通过使用VM运行.class文件直接运行java程序,他们也需要有.java文件

解决方法

根据定义,JVM是一个 virtual machine,它是一个模拟真机操作的软件机器.像真机一样,它有一个 instruction set( bytecodes),一个虚拟计算机架构和一个执行模型.它能够运行用这个虚拟指令集编写的代码,就像真机可以运行机器代码一样.

因此,类文件包含虚拟指令集中的指令,并且能够运行它们.就此而言,虚拟机可以解释代码本身,也可以针对当前运行的硬件架构进行编译.有些人做两件事,有些做其中一件.

例如,Java HotSpot最初解释字节码,并逐步将代码编译为机器代码.这称为adaptive optimization.某些虚拟机始终直接编译为机器代码.

所以,你可以看到有两种不同的“编译概念”.一个是将Java代码转换为JVM字节码(从.java到.class).当程序运行时会发生第二个编译阶段,其中字节码可以被解释或编译为实际的机器代码.这是由JVM内的just-in-time compiler完成的.

因此,正如您所看到的,计算机无法直接运行Java程序,因为该程序不是用计算机理解的语言编写的.它用语言编写,所有JVM实现都可以理解.并且有许多操作系统和硬件架构的JVM实现.这些JVM使用此通用语言(字节码)转换任何特定硬件(机器代码)的程序.这就是虚拟机的美妙之处.

原文地址:https://www.jb51.cc/java/129431.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐