加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中.class文件的用途

发布时间:2020-12-15 00:40:30 所属栏目:Java 来源:网络整理
导读:我试图了解.class文件如何在 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使用此通用语言(字节码)转换任何特定硬件(机器代码)的程序.这就是虚拟机的美妙之处.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读