Java和JVM运行原理

编译型语言和解释型语言

编译型语言:专门的编译器,针对特定的操作系统翻译成机器码,并包装成该操作系统可执行程序的格式。
优点:执行速度快、效率高
缺点:依赖编译器、跨平台性差
代表语言:C、C++、Delphi、Pascal、Fortran

解释型语言:在运行程序的时候进行翻译,专门的解释器负责在每个语句执行的时候解释程序代码。
优点:依赖解释器、跨平台性强
缺点:执行速度慢、效率低
代表语言:Java、Basic

Java程序编译原理

Java语言可以说是一种编译型-解释型语言,但这里的所谓的“编译”与传统的编译是不同的。Java程序很特殊,它也需要编译,但是没有直接编译成机器语言,而是将.java文件编译成与平台无关的字节码.class文件,class类文件不能在计算机上直接执行,它需要被Java虚拟机(JVM)翻译成本地的机器码后才能执行,而Java虚拟机(JVM)的翻译过程则是解释型的。

java字节码首先被加载至计算机内存中,然后读出一条指令,翻译一条指令,执行一条指令,该过程被称为java语言的解释执行。该过程是由java虚拟机完成的。我们可通过两条重要的命令javac XXX.javajava XXX来分别完成上面的编译和解释过程。

javac XXX.java:将后缀名为.java的源文件编译为后缀名为.class的可以运行于Java虚拟机的字节码。

java XXX:解释前面生成的字节码,生成本地的机器码。

具体编译过程如下:

Java虚拟机(JVM)

JVM是java的核心和基础,是一种能够运行java字节码的虚拟机。JVM屏蔽了与具体操作平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

JVM执行程序的过程:
- 加载.class文件
- 管理并分配内存
- 执行垃圾收集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值