Java语言的执行原理

Java 和其他的高级语言一样,需要先翻译成低级语言才能被计算机执行。目前世界上这个编程语言翻译主要有两种方式

解释(interpreting)
编译(compiling)
完成解释任务的程序叫解释器,解释器会按行(一行一行的读取)对程序进行翻译,然后执行命令。

完成编译任务的程序叫做编译器,它会在高级语言执行之前一次性对该程序进行完整的编译,所以程序的运行是在编译过程之后。我们一般把这种高级语言称为源代码(source code,我们经常说的 coding 就是写源代码),编译器生成的程序称为可执行程序(executable)。

Java 比较强大,它既可以被编译也可以被解释,不同的是 Java 编译过程并不生成机器语言,而是生成字节码。字节码和机器语言一样,但是它具备高级语言的可移植性,因此在一台机器上编译 Java,在另外一台机器上也可以被解释运行。这正是 Java 语言在诞生的时候就瞬间超越了其他语言的核心原因:一次编写到处运行。

除了生成字节码之外,Java 还创建了 JVM (Java virtual machine ,Java 虚拟机),通过 JVM 支持了字节码的解释运行。
在这里插入图片描述
所以 Java 语言的进阶可以分为两层:Java 语言、JVM。了解这个对之后程序的运行和代码中出现的问题能够更容易理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java语言的跨平台原理主要依赖于Java虚拟机(JVM)的存在。当我们编写Java程序时,源代码会被编译成字节码文件(.class文件),这些字节码文件并不是直接在特定的操作系统上执行,而是由JVM解释和执行。 JVM是一个平台无关的虚拟机,它在不同的操作系统上都有对应的实现。当我们在某个操作系统上安装了Java运行时环境(JRE),实际上就是安装了该操作系统上的JVM。当我们运行Java程序时,JVM会将字节码文件转换成机器码,然后在特定的操作系统上执行。 由于JVM的存在,Java程序可以在不同的操作系统上运行,只需在目标操作系统上安装对应的JVM即可。这使得Java具有了跨平台的能力,即"一次编写,到处运行"。无论是在Windows、Linux、Mac等操作系统上,只要有对应版本的JVM,就可以运行相同的Java程序。 JVM实现了跨平台的能力主要有以下几个方面: 1. 字节码:Java源代码经过编译后生成的字节码是与具体平台无关的中间代码。 2. 类加载器:JVM的类加载器负责加载字节码文件,并将其转换成可执行代码。 3. 解释器和即时编译器:JVM内部有解释器和即时编译器,解释器可以直接解释执行字节码,而即时编译器则会将热点代码转换成本地机器码,以提高执行效率。 4. 内存管理和垃圾回收:JVM提供了内存管理和垃圾回收机制,使得程序在不同平台上都可以自动管理内存。 通过这些机制,Java程序可以在不同的操作系统上运行,实现了跨平台的特性。同时,Java的标准库也是平台无关的,这意味着我们可以在不同的操作系统上使用相同的API进行开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值