Java之Javac、JIT、AOT之间的关系

Javac:javac 是java语言编程编译器。全称java compiler。但这时候还是不能直接执行的,因为机器只能读懂汇编,也就是二进制,因此还需要进一步把.class文件编译成二进制文件。

Java的执行过程

在这里插入图片描述

详细流程

在这里插入图片描述
结论:javac编译后的.class文件还是字节码,还不能被机器识别.class字节码文件还要进一步被JVM编译成机器码。而JVM内置了解释器interpreter和编译器compiler,从这里可以看出Java是半编译半解释型高级语言。因此javac并不能说是真正的编译。

编译:源代码(.java)===》机器码(二进制)

AOT和JIT的优缺点

AOT:Ahead-of-Time(提前编译)∶程序执行前,全部被编译成机器码
JIT:Just in Time (即时编译)︰程序边编译,边运行
因此javac在AOT和JIT操作之前。就Java语言而言,AOT和JIT就是处理.class文件的。只是他们一个是编译顺序不一样。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/2698.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ESP32C3合宙ESP32C3】:ESP32C3和合宙ESP32C3的环境搭建与离线包安装

项目场景: 最近买了一块合宙ESP32C3的开发板,于是想要开发一下,当然开发最开始少不掉开发环境的搭建,在这个搭建的过程中,遇到了一些问题,解决了,也希望能帮助到大家。 ESP32C3 和 合宙ES…

gnutls_handshake() failed: The TLS connection was non-properly terminated.

从远程仓库获取所有更新,并保存在本地时,使用git fetch 命令时出现如下错误: 解决办法: 问题解决: 参考资料 拉取github报错 gnutls_handshake() failed: The TLS connection was non-properly terminated. git获取…

Laravel 多字段去重count计数

Laravel 多字段去重count计数 背景:需要统计数据列表总条数(字段1、字段2去重统计) table:policy_view,去重字段admin_id和permission 期望结果:count不含重复统计数据 解决思路: 语法:DISTI…

SpringMVC 学习整理

文章目录 一、SpringMVC 简介1.1 什么是MVC1.2 什么是Spring MVC1.3 Spring MVC的特点 二、SpringMVC 快速入门三、RequestMapping注解说明四、SpringMVC获取请求参数4.1 通过ServletAPI获取请求参数4.2 通过控制器方法的形参获取请求参数4.3 通过RequestParam接收请求参数4.4 …

Python工具箱系列(三十七)

二进制文件操作(上) python比较擅长与文本相关的操作。但现实世界中,对于非文本消息的处理也很普遍。例如: ◆通过有线、无线传递传感器获得的测量数据。 ◆卫星通过电磁波发送测量数据。 ◆数据中心的数万台服务器发送当前CP…

【Python】Python进阶系列教程--Python AI 绘画(二十)

文章目录 前言Windows 环境安装Civitai 介绍 前言 往期回顾: Python进阶系列教程-- Python3 正则表达式(一)Python进阶系列教程-- Python3 CGI编程(二)Python进阶系列教程-- Python3 MySQL - mysql-connector 驱动&a…

【单片机】STM32F103C8T6单片机,OLED 1.3寸 IIC OLED,STM32F103单片机,I2C OLED

文章目录 main.coled.coled.hOLED_Font.h 效果: main.c #include "sys.h" #include "usart.h" #include "OLED.h"int main(void) {NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* 设置NVIC中断分组2:2位抢占优…

ELK 多用户登录

先搭建ELK集群环境 请移步至:FilebeatELK 搭建日志收集平台 ES开启TLS加密通信与身份认证 进入ES集群任意一台安装目录,生成ca证书 这里最好使用ES启动账号操作,证书生成过程中一直回车到完成,不要去输入密码。 # 生成CA证书 bi…

【软考网络管理员】2023年软考网管初级常见知识考点(23)- 路由器的配置

涉及知识点 华为路由器的配置,华为路由器命令大全,软考大纲路由命令,静态路由和动态路由的配置命令,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-…

SQL-每日一题【184. 部门工资最高的员工】

题目 表: Employee 表: Department 编写SQL查询以查找每个部门中薪资最高的员工。 按 任意顺序 返回结果表。 查询结果格式如下例所示。 示例 1: 解题思路 前置知识 1.rank() over的用法 作用:查出指定条件后的进行排名,条件相同…

如何克服自动化测试中的壁垒和问题?

随着自动化测试技术的快速发展和普及,自动化测试已经成为各个行业广泛应用的重要测试手段。然而,自动化测试中仍然存在壁垒和问题,这些问题可能对测试效果产生影响,甚至会影响整个项目的进程。在本文中,我们将探讨如何…

QT5.12安卓环境的搭建(转载保存留档查看)

1. QT环境搭建 Qt 5.12.6安装的时候 添加 “Android ARM64-v8a”,也可以添加 “Android ARMv7” 。 (其它为搭建qgc时需要添加的) 2. Android 环境搭建 QT官方的指导: Qt 5.12 Getting Started with Qt for Android Qt 5.15 …