java 是编译型_Java是解释型语言还是编译型语言

问题描述:

在研究Python和Java之间的区别的时候,发现Java需要编译,而Python可以直接运行,我就在想Java它是编译型的语言吗。

编译型和解释型语言的介绍

编译型语言:

编译型语言是源代码要经过编译器编译处理,生成目标机器码,这个机器码是一个二进制代码,是给看的机器看的,让它知道自己要干哪些活,而且这个机器码会保留,下次运行这段代码时无需重新编译。不过它是针对当前CPU的,这些目标代码只能在特定平台执行,如果这个程序需要在另外一种 CPU 上面运行,这个代码就必须重新编译。

解释型语言:

解释型语言是在代码运行期间逐行翻译成目标机器码,就是在边运行边翻译,下次执行时,还是需要再执行一次这个过程。

编译型和解释型语言的优点和缺点

编译型

优点:

运行速度快,代码效率高,编译后的程序不可修改,保密性较好。

缺点:

代码需要经过编译方可运行,可移植性差,只能在兼容的操作系统上运行。

解释型

优点:

可移植性较好,只要有解释环境,可在不同的操作系统上运行。

缺点:

运行需要解释环境,运行起来比编译的要慢,占用资源也要多一些,代码效率低,代码修改后就可运行,不需要编译过程。

那Java是编译型还是解释型呢

先谈谈Java的程序运行流程吧,如下图:

f9a9e9418e1f4b9bb9b0dfea64d0a207.jpg

几种说法

一 编译型:

说Java是编译型,因为所有的Java代码都是要编译的,必须把.java经过编译变成。 现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行

二 解释型:

也有说Java是解释型的。因为java代码编译后不能直接运行,它是通过解释然后在JVM上运行的,所以它是解释运行的。

结论:

在我看来,Java首先由编译器编译成.class类型的文件,这个是java自己根据CPU生成的类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,而由于java对于多种不同的操作系统有不同的JVM所以 Java实现了真正意义上的跨平台!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值