JVM 具体是怎样运行 Java 字节码的

Java 代码有很多种不同的运行方式,可以在开发工具种运行;可以双击执行 jar 文件运行;可以在命令行种运行;甚至可以在网页种运行,这些都离不开 JRE,也就是 Java运行环境。(包含 Java 程序的必须组件,即 Java 虚拟机以及 Java 核心类库等)

为什么 Java 要在虚拟机里运行?

Java 的语法很复杂,抽象程度高,直接在硬件上运行这种复杂的程序并不现实,所以在在运行之前需要进行转换。为了完成转换,会设计一个面向 Java 语言特性的虚拟机,并通过编译器将Java程序转换成虚拟机能识别的指令序列,也称 Java 字节码,之所以这么取名是因为 Java 字节码指令的操作码(opcode)被固定为一个字节。

虚拟机可以由硬件实现,但更为常见的是在现有平台上提供软件实现。这么做的意义在于:一旦一个程序被转换成 Java 字节码,那么它便可以在不同平台上的同版本虚拟机里运行,也就是 “一次编译,处处运行”

虚拟机的另外一个好处就是它带来了一个托管环境。能够代替我们处理一些代码种冗长容易出错的部分,最常见的就是自动内存管理与垃圾回收。另外,托管环境还提供了如数组越界,动态类型、安全权限等的动态检测,使我们免于书写与无关业务逻辑的代码

Java 虚拟机具体是怎样运行 Java 字节码的?

以标准 JDK 中的 HotSpot 虚拟机为例,从虚拟机底层和硬件两个角度来看 Java 字节码的运行。

从虚拟机底层来说,执行 Java 代码需要先将它编译成的 class 文件加载到 Java 虚拟机中。加载后的 Java 类会被u存放于

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值