Java的运行机制以及Java跨平台的原理

本文介绍了JDK、JRE和JVM的关系,JDK是开发工具包,含JRE等;JRE是运行环境,含JVM及核心类库;JVM是虚拟机,将字节码文件解释成机器码执行。还阐述了Java程序先编译成字节码文件,再由JVM解释执行的运行机制,以及因字节码文件结构中立实现跨平台的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、首先说一下JDK、JRE和JVM的关系

JDK(Java Development Kit)是 Java 语言的软件开发工具包,它包含有JRE、编译器和调试器等用于程序开发的文件。抛开JRE不谈,它主要能干编译和调试两件事。

JRE(Java Runtime Environment)即java运行环境,它包含了JVM及java的核心类库。抛开JVM不谈,它主要提供一些必要的运行文件。

JVM(Java Virtual Machine)即Java虚拟机,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java的解释器就包含在JVM中。JVM有自己完善的硬件架构,如处理器、堆栈(Stack)、寄存器等,还具有相应的指令系统(字节码就是一种指令格式)。

它的主要功能是,将字节码文件class文件解释成对应平台机器码并执行。不同的操作系统因为他们的机器码不同所以他们的JVM不同。

所以他们的关系就可以用下图来表示:

2、Java程序运行机制

Java的运行主要分两步:先编译再解释执行

(1)先通过“编译器”将Java源程序(.java)编译成Java字节码文件(.class)(字节码文件采用结构中立的中间文件格式)

(2)通过不同的虚拟机(JVM)将字节码文件解释为机器语言并执行

用图来表示就是:

3、Java跨平台原理

因为程序都需要编译生成字节码文件(.class),而字节码文件生成后是结构中立的中间文件格式,即可看作是无关于源文件(.java)也无关于虚拟机(JVM)的文件,这样在不同机器上执行同一份.class文件他们的执行结果也相同。

用图表示就是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值