Java语言的特点和优势

Java是解释执行这句话正确吗?谈谈你对Java平台的理解。

正文:

对于Java解释执行这句话我想大家心里其实是有一定的理解的,Java是一个面向对象语言,并且可以跨平台执行的一种语言,Java公司对Java语言的宣传语是“编写一次,可在任何地方运行(Write once, run anywhere)”。下面我们一起来看一看Java是怎么做到这个特点的。

Java语言执行过程:
  1. 将Java源码(.java文件)通过编译器命令(javac.exe)编译成JVM文件(.class文件)
  2. 再将(.class文件)交给JVM解释转换成字节码输出给硬件,最终执行出结果。
    在这里插入图片描述
    相信大家看到这里已经对Java执行过程有了一个意向,上图中出现了一个JIT(Just-In-Time)代码生成器,有的人可能不知道这个JIT是什么鬼。

JIT简单介绍:

在介绍JIT之前我们先了解两个概念:静态编译,动态编译。
1、动态编译(dynamic compilation)指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。

2、JIT编译(just-in-time compilation)狭义来说是当某段代码即将第一次被执行时进行编译,因而叫“即时编译”。JIT编译是动态编译的一种特例。JIT编译一词后来被泛化,时常与动态编译等价;但要注意广义与狭义的JIT编译所指的区别。
3、自适应动态编译(adaptive dynamic compilation)也是一种动态编译,但它通常执行的时机比JIT编译迟,先让程序“以某种式”先运行起来,收集一些信息之后再做动态编译。这样的编译可以更加优化。

总结

对于“Java是解释执行”这句话,这个说法不太准确。我们开发的Java的源代码,首先通过Javac编译成为字节码(bytecode),然后,在运行时,通过 Java虚拟机(JVM)内嵌的
解释器将字节码转换成为最终的机器码。但是常见的JVM,比如我们大多数情况使用的Oracle JDK提供的Hotspot JVM,都提供了JIT(Just-In-Time)编译器,也就是通常所说的
动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。

知识扩展

回归正题,对于Java平台的理解,可以从很多方面简明扼要地谈一下,例如:Java语言特性,包括泛型、Lambda等语言特性;基础类库,包括集合、IO/NIO、网络、并发、安全
等基础类库。对于我们日常工作应用较多的类库,面试前可以系统化总结一下,有助于临场发挥。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值