JAVA全系列 教程
3762个小节阅读:7088.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
计算机语言:
计算机能够直接执行的指令。这种指令和系统及硬件有关。
计算机高级语言:
在遵循语法的前提下,写一个文本文件,之后利用某种方式,把文本转换为计算机指令执行。
我们编写的都是计算机高级语言,而将计算机高级语言转为计算机语言运行,有两种方式:
动态解释(JIT):解释执行,运行时翻译为机器码。(比如Python,也称为解释型语言)
静态编译(AOT):程序在执行前全部被翻译为机器码,可以直接运行二进制文件。(比如C++,也称为解释型语言)
这两种方式各有优缺点,动态解释代码运行效率较低,但可以跨平台运行。
静态编译代码运行效率较高,但不能跨平台运行,而且编译代码比较浪费时间,调试成本高。
注意,JVM并不是单纯依靠解释器解释虚拟指令,JVM中既有解释器,还有即时编译器。
- 解释器可以将字节码文件解释为机器指令,立即执行。
- 即时编译器可以将字节码文件编译为机器指令,存在内存中,编译完成后直接执行本地机器指令即可。
当Java虚拟器启动后,解释器首先发挥作用,不必等待即时编译器全部编译完成后再执行。随着时间的推移,编译器把越来越多的代码编译成本地代码,此时运行本地机器指令,获得更高的执行效率。
虽然这种启动方式很优秀,但他的启动还是比AOT方式慢。在当前微服务、云原生盛行的时代,JAVA 程序显得越来越臃肿,虽然使用AOT也有诸多缺点,比如打包时间长、舍弃平台无关性、反射、动态代理的分析能力有限。但是JAVA必定会向AOT发展,否则在云原生时代,可以能被其他后起之秀慢慢蚕食市场。
1. 静态编译相对于动态解释,优点是
A 可以跨平台运行
B 运行效率较高
C 调试成本低
D 编译代码节约时间
2. JVM依靠运行虚拟指令
A 解释器
B 即时编译器
C 解释器和即时编译器
D 以上说法都不对
答案
1=>B 2=>C