目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7088.2k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(70)
赞(0)

SpringBoot3新特性_原生镜像

image-20230825194703967

JAVA语言的执行原理

  • 计算机语言

    计算机能够直接执行的指令。这种指令和系统及硬件有关。

  • 计算机高级语言

    在遵循语法的前提下,写一个文本文件,之后利用某种方式,把文本转换为计算机指令执行。

我们编写的都是计算机高级语言,而将计算机高级语言转为计算机语言运行,有两种方式:

  • 动态解释(JIT):解释执行,运行时翻译为机器码。(比如Python,也称为解释型语言)

    image-20230825162607086

  • 静态编译(AOT):程序在执行前全部被翻译为机器码,可以直接运行二进制文件。(比如C++,也称为解释型语言)

    image-20230825162850285

这两种方式各有优缺点,动态解释代码运行效率较低,但可以跨平台运行。

静态编译代码运行效率较高,但不能跨平台运行,而且编译代码比较浪费时间,调试成本高。

  • JAVA语言:先编译,后解释执行

image-20230825163238910

注意,JVM并不是单纯依靠解释器解释虚拟指令,JVM中既有解释器,还有即时编译器。

  • 解释器可以将字节码文件解释为机器指令,立即执行。
  • 即时编译器可以将字节码文件编译为机器指令,存在内存中,编译完成后直接执行本地机器指令即可。

当Java虚拟器启动后,解释器首先发挥作用,不必等待即时编译器全部编译完成后再执行。随着时间的推移,编译器把越来越多的代码编译成本地代码,此时运行本地机器指令,获得更高的执行效率。

虽然这种启动方式很优秀,但他的启动还是比AOT方式慢。在当前微服务、云原生盛行的时代,JAVA 程序显得越来越臃肿,虽然使用AOT也有诸多缺点,比如打包时间长、舍弃平台无关性、反射、动态代理的分析能力有限。但是JAVA必定会向AOT发展,否则在云原生时代,可以能被其他后起之秀慢慢蚕食市场。

实时效果反馈

1. 静态编译相对于动态解释,优点是

A 可以跨平台运行

B 运行效率较高

C 调试成本低

D 编译代码节约时间

2. JVM依靠运行虚拟指令

A 解释器

B 即时编译器

C 解释器和即时编译器

D 以上说法都不对

答案

1=>B 2=>C

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2