《Java疯狂讲义》(第3版)学习笔记 2 - Java语言的运行机制

内容

1、高级语言的运行机制

2、Java 语言的运行机制

1、高级语言的运行机制

高级语言主要分为编译型语言和解释型语言两类。

编译型语言是指使用专门的编译器、针对特定平台(操作系统)将高级语言源代码一次性“翻译”成该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行文件格式,这个转换过程称为编译(Compile)。编译生成的可执行程序可以脱离开发环境,在特定的平台下独立运行。有些还需要链接其他编译好的目标代码

编译型语言是程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++

解释型语言是无需编译,先翻译成中间代码,再由解释器对中间代码进行解释运行。程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低,跨平台性较好。如Ruby、Python

2、Java 语言的运行机制

Java语言比较特殊,由Java语言编写的程序需要经过编译步骤,但这个编译步骤并不会生成特定平台的机器码,而是生成一种平台无关的字节码(也就是*.class文件)。这种字节码必须通过解释器执行。因此,Java程序的执行必须经过先编译,后解释两个步骤,如下图所示

JVM(Java Virtual Machine,Java虚拟机)负责解释执行字节码文件(*.class文件)。Java编译器不面向任何具体平台,只面向JVM。虽然不同平台下JVM是不同的,但它们都面对编译器均提供相同的接口。Java编译器生成的与平台无关的字节码,不能直接在不同的平台上运行,必须通过中间的转换器(JVM)才能运行。

首先Java编译器生成虚拟机能理解的代码(与平台无关的字节码文件),然后虚拟机解释执行这些代码。

JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台下运行。

JVM是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域。它负责执行指令,还要管理数据、内存和寄存器。

Sun公司制定的Java虚拟机规范在技术上规定了JVM统一标准,具体定义了JVM的如下细节:

指令集
寄存器
类文件格式

垃圾回收堆
存储区

Sun公司制定规范的目的是为了提供统一的标准,最终实现Java程序的平台无关性。

《Java疯狂讲义》(第3版)学习笔记 2 - Java语言的运行机制的相关教程结束。

相关推荐:

如何在 SFTTrainer 中融入负样本进行语言模型微调?

SFTTrainer本身不支持负样本训练,因其本质是监督式最大似然优化;如需引入负向信号,可考虑改用KTOTrainer,或通过构造含明确否定标记的提示模板间接建模。 如需在sfttrainer中融入负样本进行语言模型微调,需明确一个关键前提:sfttrainer的设计目标是标准监督微调(super...

如何在 SFTTrainer 中利用负样本进行语言模型微调?

sfttrainer本身不支持负样本训练,因其本质是监督式最大似然优化;如需引入负例信号,可选用ktotrainer等对齐算法,或通过构造带明确负向标记的prompt实现间接建模。 sfttrainer本身不支持负样本训练,因其本质是监督式最大似然优化;如需引入负例信号,可选用ktotrainer等...

Python如何实现类似C语言的结构体_使用namedtuple或dataclass定义

namedtuple适合轻量只读场景,如配置常量、函数多返回值、字典key;dataclass适用于需可变、默认值、方法、序列化的开发需求;性能敏感且字段固定时可选TypedDict或手写__slots__类。 用namedtuple定义不可变结构体,适合轻量只读场景 当你要建一个类似C的struc...

如何正确读取包含本地语言(如印地语)的CSV文件

python中读取含本地语言(如印地语)的csv文件时出现乱码(如“??????????”),通常是因文件未以utf-8编码保存或读取时未正确声明编码所致;解决关键在于确保csv文件以utf-8withbom(即“csvutf-8”格式)保存,并在python中统一使用utf-8解码。 python...

如何在BERT掩码语言建模中支持多标签正确性判定

本文介绍一种实用策略:通过构建结构化二分类辅助数据集,结合bert掩码预测与后验语义等价校验,实现对同一掩码位置多个语义正确答案(如“equals”“gives”“isequalto”)的灵活接纳,提升算术语义理解任务的鲁棒性。 本文介绍一种实用策略:通过构建结构化二分类辅助数据集,结合bert掩码...

如何在BERT掩码语言建模中支持多标签正确性判断

本文介绍一种实用策略:通过构建结构化二分类辅助数据集,配合标准BERT掩码微调流程,实现对同一掩码位置多个语义等价答案(如“equals”“gives”“isequalto”)的灵活接纳,提升模型在算术语义理解任务中的鲁棒性与泛化能力。 本文介绍一种实用策略:通过构建结构化二分类辅助数据集,配合标准...