编写、编译并运行
理论
即使您不是经验丰富的程序员,您也可能听说过一些有关 Java 的知识。它不仅是一种编程语言,而且是一个广泛使用的软件平台。在本主题中,您将了解有关 Java 平台的一些基本概念,并学习如何在 Java 环境中编写和运行程序。
§1. 编写程序
作为开发人员,创建程序时要做的第一件事就是编写 源代码 在纯文本文件中,并使用与您选择的编程语言相对应的扩展名保存它(.java 对于 Java 语言,.kt Kotlin 等)。单个程序由一个或多个这样的文件组成,其中包含指定程序功能的指令。源代码必须遵循相应语言的语法规则,并且易于阅读和理解。
§2. 编译
代码写好后,你需要让计算机运行程序。由于计算机无法理解源代码,因此需要将其翻译成计算机可理解的格式。这时,就需要使用一种称为 编译器 就派上用场了。编译后获得的代码称为本机代码或低级代码。每个计算机平台使用不同的低级命令,就像世界各地的人说不同的语言一样。这为在不同设备上使用程序带来了额外的挑战。
在 Java 世界中,编译器( javac Java 工具或科特林克 Kotlin 的工具)将源代码转换为中间表示,称为Java 字节码 存储在文件中。班级 扩展。计算机不能在没有翻译的情况下读取字节码,但是一个称为 Java 虚拟机 (JVM) 的系统可以执行它。
§3. 运行程序
这 Java虚拟机 (JVM) 是根据 JVM 规范文档表示虚拟计算机的应用程序。它执行已编译的 Java 字节码并将其转换为计算机可以理解的低级命令。每个平台都有自己的 JVM 版本,但由于所有 JVM 都符合相同的规范,因此您的程序在不同设备上的行为将完全相同。
Java 平台的一个主要概念是“一次编写,随处运行”。这意味着只要安装了 JVM,程序就可以在各种设备上运行。这个概念也经常被称为 平台独立性 或可移植性。
需要记住的是:输入 JVM 的代码是与平台无关的,而输出的代码是与平台相关的。
Java 世界中的平台无关程序
如果计算机上安装了 JVM,则可以使用 Java 语言 工具。它将打开一个文件,其中包含。班级 扩展名,从此文件启动程序。此工具对于所有 JVM 语言都相同。
下图简单概括了一个JVM程序的工作周期。
§4. JVM 语言
Java 平台允许使用多种编程语言来创建程序。这是通过 JVM 的设计实现的:它对任何特定的编程语言一无所知。它只理解 Java 字节码。如果某种编程语言的工具可以生成字节码,那么用这种语言编写的程序就可以在 JVM 上执行。这类语言通常被称为 JVM 语言。它们包括 Java 本身、Kotlin、Scala、Groovy、Clojure 等。因此,要在 Java 世界中创建程序,您可以选择最方便的语言。
如今,几乎任何编程语言都可以找到生成 Java 字节码的工具,这意味着几乎没有任何语言不是 JVM 语言。
在 Java 世界中可以使用不同的编程语言来编写程序
§5. 结论
- 开发人员将程序源代码写入具有适当扩展名的文本文件中。
- 编译器将源代码转换成存储在 .class 文件中的 Java 字节码。
- Java 虚拟机执行字节码,向计算机发出低级命令。
- 所有JVM均由JVM规范定义,从而为程序提供了平台独立性。
您还可以查看 hyperskill.org 上的课程.
实践任务及答案
给出了任务和答案选项。正确选项以 蓝色的 颜色。
№1. MyHelloWorldApplication.class
问题: 给定一个文件 MyHelloWorldApplication,扩展名为 .class。此文件包含什么?
从列表中选择一个选项:
- 机器代码
- Java 源代码
- JavaScript
- 通用中间语言
- 字节码 ✔
№2. 执行 Java 程序的系统
问题: 输入执行 Java 程序的系统的缩写。提示:缩写由三个字母组成。
输入简短的文字: JVM ✔
解释。 执行Java程序的系统的缩写是JVM(Java虚拟机)。
№3. 文件
问题: 在Java的世界里,有一份文档叫《JVM规范》,它描述了什么呢?
从列表中选择一个选项:
- 如何使一种编程语言成为JVM语言:任何编程语言要成为JVM语言都必须支持的一组语法规则和编译。
- Java 编程语言,包括语法、执行和工具。
- JVM 语言列表,让每个人都熟悉所有可能的选项。
- 一台抽象的计算机以及它如何工作以使程序可移植。✔
解释。 “JVM 规范”描述了一台抽象的计算机以及它如何工作以使程序可移植。
№4. 字节码
问题: 哪个工具生成字节码?
从列表中选择一个选项:
- JVM 语言
- JVM
- 编译器✔
- JVM 规范
解释。 编译器是生成字节码的工具。
№5. JVM 语言
问题: 下列哪些编程语言可以在 JVM 上运行?
从列表中选择一个或多个选项:
- Kotlin ✔
- Scala ✔
- 时髦 ✔
- Java ✔
解释。 所有这些编程语言都可以在 JVM 上运行
№6. 平台独立性
问题: 选择关于 Java 世界中平台独立性的正确陈述:
从列表中选择一个选项:
- 程序直接依赖于计算机的硬件和操作系统。
- 程序需要有特殊的语法才能实现平台独立性。
- 如果操作系统不是 Linux,则程序在 Java 虚拟机上执行。
- 程序在 Java 虚拟机上执行,以实现平台独立性。✔
解释。 Java世界中关于平台独立性的正确表述是:程序在Java虚拟机上执行,从而达到平台独立性。
№7. 声明
问题: 选择所有正确的陈述。
从列表中选择一个或多个选项:
- JVM 理解字节码。✔
- 计算机理解源代码。
- 要运行已编译的 Java 程序,必须在计算机上安装 JVM。✔
- JVM 为 Java 程序提供了平台独立性。✔
№8. 源代码翻译成什么?
问题: JVM 语言的编译器(例如 Kotlin)将源代码转换为...
从列表中选择一个选项:
- 用户代码
- 位码
- 字节码 ✔
- 比特币
- 机器代码
解释。 JVM 语言的编译器(例如 Kotlin)将源代码转换为字节码。
№9. 生成字节码
问题: 众所周知,Java 世界以字节码为基石。从以下选项中,哪些是创建字节码的有效方法?
从列表中选择一个或多个选项:
- 用Java实现一个程序,并使用JVM生成字节码
- 使用 JVM 语言编写代码并使用其编译器生成字节码✔
- 在至少三台不同的计算机上运行你的程序并结合它们的输出来接收字节码(“一次编写,随处运行”的概念)
解释。 以下是创建字节码的有效方法: 用 Java 实现程序并使用 JVM 生成字节码; 用 JVM 语言编写代码并使用其编译器生成字节码(ChatGPT 回应)。
但是 hyperskill 网站只接受一个正确选项(以蓝色突出显示)。源代码(.java)-> 编译器 -> 字节码 -> JVM -> 机器码。JVM 不是编译器。只有一个正确选项。
№10. 字节码的用途
问题: 字节码有什么用处?
从列表中选择一个选项:
- 它帮助人类编写和理解程序
- 它比程序的原始代码更紧凑,因此程序员可以使用它来更快地读取程序
- 它保护程序的源代码
- 它使得用 JVM 语言编写的程序与平台无关 ✔
- 它允许将程序作为一组字节存储在计算机上
解释。 字节码使得用 JVM 语言编写的程序与平台无关。