Java工作原理(新)

    第一次接触Java,由于在之前已经学习并一定程度上掌握了C语言,所以在刚接触Java时,我不禁会在学习中将Java和C的种种方面进行对比,其中最令我印象深刻的就是Java与C语言在“代码---->程序”过程上也有一些联系,直观的体现是C语言代码和Java代码的运行都只需要“一键”,而隐藏在这“一键”之下的一系列复杂工序,是非常有趣的。那么在这表象下的根本原理体现在哪里呢?我们就不得不来研究一下Java的运行原理。

首先,要讲一下Java虚拟机:

Java虚拟机(JVM)是一个可以执行Java字节码的虚拟机进程

Java编写的程序(存放在扩展名为java的文件中)经过编译器(即JDK根目录bin文件夹中的javac.exe文件)编译成字节码文件(即扩展名为class的文件),这个字节码文件不是针对具体平台的,而是针对抽象的Java虚拟机的,在Java虚拟机上运行,在不同类型的平台上安装不同的Java虚拟机,这些不同的Java虚拟机屏蔽了各个不同平台的差异,从而使编译过的JavaJ程序具有平台无关性,即Java虚拟机在执行字节码时,把字节码解析成具体平台上的机器指令执行。也就是说,只要电脑上装有JDK,无论计算机是怎样的操作系统,虚拟机都能让字节码文件运行,即一次编译,处处运行

接着,就是Java工作的原理图:

我个人的理解:通俗的来讲Java程序的代码通过类装载器装载后首先经过编译器,按照固有的编译规则,翻译成介于代码与机器指令之间的“字节码文件(.class)”同时进行一次语法检查,然后交给字节码校验器来二次语法检查(因为即使即使编译无误,字节码文件也会因为一些原因而更改),检查无误后才才有资格交给解释器,此时解释器就充当了翻译官的身份将代码转化为计算机“能听懂”的语言,即机器指令,程序就能顺理成章地运行了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值