JAVA学习笔记(二) java如何让计算机知道并执行我们想做的事

本文解析了JAVA语言如何实现跨平台特性。通过JAVA虚拟机(JVM),源代码(.java)被编译为字节码(.class),再由不同平台上的JVM解释执行。文章详细介绍了从源文件到可执行代码的过程,包括类加载、字节码验证及通过JAVA解释器或即时编译器(JIT)转换为机器码。

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

众所周知,JAVA拥有很强大的跨平台性,可是为什么呢?因为JAVA虚拟机的原因

这是一个JAVA运行的图片;


我们来看看JAVA是如何运行的,由图片可以知道看出JAVA编译和运行是不在一个环境当中的他有一个编译时环境和运行时环境,我们写好源文件(.java)以后,系统先通过JAVA的编译器,编译成字节码文件(.class),这个类似于C语言中,.c文件编译成目标文件(.obj),然后JAVA将这个文件通过不同的方式,传递给运行时环境。

我们知道,JAVA是一个纯面向对象的语言,我们肯定会运用里面很多自带的类(不可能所有的类都要自己写一遍吧),这时,就要通过类加载器,将系统自带的类给加载进去,你可以在你的安装路径下找到很多JAR包,里面就是自带的类库的.class文件,加载完成后通过字节码校验器。

然后我们看到,这里产生了两个分支,这两个分支的执行方式是JAVA解释器是JIT的替补,也就是说,如果当前系统上没有JIT的时候,那么会使用JAVA解释器将字节码解释成2进制代码使硬件能够识别,若当前系统拥有即时编译器,那么久用即时编译器将字节码解释成2进制代码。

也就是说 JAVA所宣传的口号one write,run anything,是因为当前硬件拥有JAVA的运行时环境才可以做到。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值