Java 教程
最后修改于 2023 年 10 月 18 日
这是一个 Java 教程。在本教程中,您将学习 Java 语言的基础知识。
Java 的基础知识涵盖在 Java 基础、Java 词法结构、Java 数组、Java 流控制、Java 字符串、Java 运算符、Java 数据类型 中。Java 包。
面向对象编程涵盖在 Java 类、Java 方法、Java 接口 和 Java OOP 中。
Java
Java 是一种高级、通用、面向对象的编程语言。该语言的主要设计目标是健壮性、可移植性、高性能和安全性。Java 是一种多线程和分布式编程语言。它可以用于创建控制台应用程序、GUI 应用程序、Web 应用程序,无论是 PC 还是嵌入式系统。
Java 是 Sun Microsystems 于 1991 年创建的一种编程语言。Java 的第一个公开可用版本于 1995 年发布。如今,该语言由 Oracle 公司开发。
Java 在创建可移植的移动应用程序、编程各种设备和创建企业应用程序方面表现出色。
JVM
Java 虚拟机 (JVM) 执行 Java 字节码。JVM 包含在 JRE 和 JDK 中。Java 源代码以扩展名为 .java 的文件编写。javac Java 编译器将 Java 源代码编译成 Java 字节码;编译后的文件扩展名为 .class。此字节码由 JVM 执行。java 工具是 Java 应用程序的启动器。Oracle 的 JVM 称为 HotSpot。HotSpot 是用于桌面和服务器的 Java 虚拟机。它具有即时编译和自适应优化等高级技术,旨在提高性能。
JRE
JRE (Java Runtime Environment) 是一组用于执行 Java 应用程序的工具。JRE 不包含用于开发 Java 应用程序的编译器或调试器等工具和实用程序。
JDK
JDK (Java Development Kit) 是 JRE 的超集。它包含 JRE 和用于开发 Java 应用程序所需的编译器和调试器等工具。我们需要安装 JDK 来构建和运行我们的 Java 程序。
OpenJDK 安装
由于 Oracle 的许可问题,许多开发人员转向 OpenJDK。Amazon 提供免费、跨平台、生产就绪的 Open Java Development Kit (OpenJDK) 分发版;它称为 Amazon Coretto。
$ wget https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jdk.tar.gz
我们下载归档文件。
$ tar xzvf amazon-corretto-17-x64-linux-jdk.tar.gz
我们解压缩并打开归档文件。
$ ls amazon-corretto-17.0.4.9.1-linux-x64/ -1 ADDITIONAL_LICENSE_INFO ASSEMBLY_EXCEPTION bin conf include jmods legal lib LICENSE man README.md release version.txt
下载并解压 OpenJDK 后,我们可以看到 JDK 目录的内容。开发工具位于 bin 子目录中。javac 编译器和 java 应用程序启动器位于此子目录中。
conf 目录包含 .properties、.policy 和其他配置文件,供开发人员、部署人员和最终用户编辑。include 目录包含支持本机代码编程的头文件。jmods 目录包含已编译的模块定义。legal 目录包含每个模块的版权和许可文件。
release 文件包含 JDK 发布信息。
$ ./bin/java --version openjdk 17.0.4.1 2022-08-12 LTS OpenJDK Runtime Environment Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS) OpenJDK 64-Bit Server VM Corretto-17.0.4.9.1 (build 17.0.4.1+9-LTS, mixed mode, sharing)
我们显示 Java 的版本。
设置环境变量
在下一步中,我们设置 JAVA_HOME 变量并更新 PATH 变量。
$ export JAVA_HOME=~/opt/amazon-corretto-17.0.4.9.1-linux-x64/
JAVA_HOME 变量被 IDE 或构建器等工具使用。
$ export PATH=$PATH:~/opt/amazon-corretto-17.0.4.9.1-linux-x64/bin/
通过更新 PATH 变量,我们无需为 javac 和 java 工具指定完整路径。
编译 Java 应用程序
我们使用命令行工具创建一个简单的 Java 程序。
$ mkdir -p src/com/zetcode
在当前工作目录(即主项目目录)中,我们创建 com/zetcode 子目录。Java 源文件组织在称为包的模块中。包必须与目录结构匹配。
$ mkdir bin
编译后的 Java 字节码进入 bin 目录。
$ touch src/com/zetcode/SimpleEx.java
在 com/zetcode 子目录中创建了一个 SimpleEx.java 源文件。Java 源文件的扩展名为 .java。
package com.zetcode;
public class SimpleEx {
public static void main(String[] args) {
System.out.println("This is simple Java example.");
}
}
这是一个简单的 Java 示例的源代码。此示例将一条消息打印到控制台。
package com.zetcode;
包名必须与源文件所在的目录结构相对应。
public class SimpleEx {
公共类名必须与文件名匹配。
$ javac -d bin src/com/zetcode/SimpleEx.java
使用 javac 编译器,我们编译源代码。请注意,我们从根项目目录编译 Java 源代码。编译后的文件进入 bin 目录。
bin
└── com
└── zetcode
└── SimpleEx.class
src
└── com
└── zetcode
└── SimpleEx.java
6 directories, 2 files
编译器生成 Java 字节码,由 Java 虚拟机执行。字节码的扩展名为 .class。
$ java -cp bin com.zetcode.SimpleEx This is simple Java example.
使用 java 应用程序启动器,我们执行程序。它启动 Java 运行时环境,加载指定的类,并调用该类的 main 方法。.class 扩展名被省略;它是默认的。
程序名称是程序的完全限定名称 — com.zetcode.SimpleEx。它包括程序名称及其包。使用 -cp 选项,我们告诉启动器在哪里查找类文件。
运行单文件源代码
从 Java 11 开始,可以在不定义包结构也不需要先编译源代码的情况下运行单个 .java 文件。
$ ls SimpleEx.java
项目中只有一个文件。
public class SimpleEx {
public static void main(String[] args) {
System.out.println("This is simple Java example.");
}
}
我们不必定义 Java 包。
$ java SimpleEx.java This is simple Java example.
我们使用 java 工具运行一个由单个文件组成的简单应用程序。这对于学习目的非常方便。
列出所有Java教程。