解释型 编译型 语法糖

语法糖
泛型,变长参数,自动装箱拆箱, foreach
虚拟机运行时不支持这些语法,它们在编辑阶段被还原回简单的基础语法结构。

--------------

Java这个语言很特殊。 默认是Mixed Mode 混合模式
一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。
二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。。。

JIT Just In Time Compiler 即时编译器
HotSpot 中内置了两个JIT, Client Compiler 和Server Compiler


-------------------

其实主要还是看你对“编译”和“解释”怎么下定义了。

按我的理解,解释的意思就是在程序执行时才开始翻译代码为二进制,并且翻译一句执行一句。
如果解释的定义是这样,那Java绝对是编译型语言。

因为,第一:Java首先被编译成了字节码,第二:字节码在执行时也不是翻译一句执行一句,而是全部翻译完成并加载入内存之后才开始执行(这个过程中JVM会进行代码优化)。

所以,Java是编译型语言。

--------------------
.java->编译->.class
.class需要jvm解释(+JIT技术编译),执行。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值