在这个日新月异、信息化浸透的时代,编程技术已然成为一项至关重要的技能。Java,这门被广大开发者所采纳的编程语言,凭借其强大的功能和无视平台差异的特性,在业界赫赫有名。无论你是身处计算机专业的学堂,还是对编程怀揣浓厚兴趣的初探者,精通 Java 都将对你的学术研究和职业道路产生深远的影响。
本次 Java 入门指南系列旨在为你展现一个 Java 的基础全景,内容涵盖 Java 的基本语法、数据类型、运算符、控制流程等诸多方面。我们将从最基础的部分出发,深入浅出,助你筑建坚实的 Java 基础。无论你是编程领域的新手,还是已经有所积累的学者,都可以从本文中受益匪浅。
期望通过本文,你能对 Java 有一个全方位的理解,为你的 Java 学习之旅垒砌坚实的基石。让我们共同踏上这个旅程吧!
万事知其然,要知其所以然。在 Java 语言内部也被划分为了不同的 体系、环境和版本,我们本篇就来了解一下,他们之间有怎样的区别,并动手安装和配置不同平台的 Java 环境,并通过实现用例的方式来体会 Java 编译和执行的过程!!!
1、Java体系&环境
1.1、Java三大体系
Java 根据应用范围,可以分为 Java SE、Java EE 和 Java ME 三个体系:
Java SE(Standard Edition):Java 标准版,提供了 Java 的核心功能。它包含了 Java 语言基础库、Java 虚拟机 JVM 和一些基础的工具。Java SE 是其他两个版本的基础,主要用于开发桌面应用和商用应用;
Java EE(Enterprise Edition):Java 企业版,建立在 Java SE 的基础之上,是支持企业级应用的 Java 平台,提供了一套完整的企业级应用解决方案,包括 Web 应用服务器、EJB、Servlet、JSP 等;
Java ME(Micro Edition):Java 微型版,是一个针对移动设备和嵌入式设备的 Java 平台。Java ME 包含了一套轻量级的 API 和一个专为小型设备优化的 JVM,主要用于开发手机、电视、工业控制等嵌入式设备的应用。
1.2、Java三大环境
Java 语言的开发运行,也离不开 Java 语言的运行环境 JRE。没有 JRE 的支持,Java 语言便无法运行。当然,如果还想编译 Java 程序,搞搞小开发的话,JRE 是明显不够了,这时候就需要 JDK。JDK、JRE、Jvm 三者关系如下:
简称 | 名称 | 说明 |
---|---|---|
JVM(Java Virtual Machine) | Java 虚拟机 | 整个 Java 实现跨平台的最核心的部分,是 Java 程序的运行环境,负责执行 Java 字节码 |
JRE(Java Runtime Environment) | Java 运行时环境 | JRE = Jvm + JavaSE 标准类库,如果只需要运行 Java 程序,那么只需要安装 JRE 即可 |
JDK(Java Development Kit) | Java 开发工具包 | JDK = JRE + 开发工具集(例如 Javac 编译工具等),如果需要编写和编译 Java 程序,则需要安装 JDK |
1.3、Java两大版本
OpenJDK 是开源的,OracleJDK 是官方的
Java 最早由 Sun 公司发明,2006 年 Sun 公司将 Java开源,此时的 JDK 即为 OpenJDK。OpenJDK 是 Java SE 的开源实现,他由 Sun 和 Java 社区提供支持,2009 年 Oracle 收购了 Sun 公司,自此 Java 的维护方之一的 Sun 也变成了 Oracle。
OpenJDK 和 OracleJDK 是 Java 开发和运行环境的两种实现,它们的主要区别在于许可证和一些特性:
OpenJDK:OpenJDK 是 Java SE 的开源实现,由 Sun 公司和 Java 社区提供支持。OpenJDK 的许可证是 GPL v2,这意味着你可以自由地使用和修改源代码,但如果你分发修改后的版本,必须以同样的许可证开源;
OracleJDK:OracleJDK 是 Oracle 公司基于 OpenJDK 源代码构建的 JDK,它的许可证是 Oracle 二进制代码许可协议。这意味着你可以免费使用 OracleJDK,但如果你想用于商业用途,可能需要付费。
技术上,OracleJDK 和 OpenJDK 没有重大的差异,但 OracleJDK 提供了一些额外的性能优化和商业特性。此外,Oracle 对 OracleJDK 提供商业支持,而 OpenJDK 则主要依赖社区支持。
总的来说,如果你是开发开源项目或者个人使用,OpenJDK 是一个很好的选择。如果你需要商业支持或者 OracleJDK 的特定特性,那么你可能需要选择 OracleJDK。
2、Java安装&配置
2.1、Java下载
Java 官方下载地址:https://www.oracle.com/java/technologies/downloads/
点击上方链接即可跳转到官网下载界面,根据需要选择对应配置进行下载!
2.2、Java安装
对于 Windows 和 Mac 来说,Java 的安装步骤很简单,我们可以选择对应的安装程序(.exe/.dmg)然后根据步骤来进行安装:
- Mac 系统的默认安装路径为下述地址:
~/Library/Java/JavaVirtualMachines/
- Windows 在安装时注意指定好安装路径即可
- 对于 Linux 系统来说,下载好二进制安装包后,解压到指定位置即可,例如:
tar -zxvf jdk-8u251-linux-x64.tar.gz
2.3、Java配置
对于 Linux 和 Mac 来说,配置 $JAVA_HOME
环境变量,找到以下三个配置文件中的任意一个:
~/.bash_profile
~/.bashrc
~/.zshrc
添加下面这行代码,之后使用 source 更新即可:
# 以 Java8 举例,其中 "JAVA_HOME=" 后面是 Java JDK 的安装地址
export JAVA_HOME=/Users/liziheng/Library/Java/JavaVirtualMachines/corretto-1.8.0_332
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib
对于 windows 系统:
打开系统设置,点击高级系统设置,打开环境变量以后点击系统变量的新建:新建 JAVA_HOME 变量(单词大写,符合是英文),如果是用默认安装路径可以直接复制使用;
找到系统变量中的 Path 变量,选中然后点击编辑,然后点击新建,这里都一样,可以直接复制使用:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
- ClassPath 环境变量:点击系统变量新建然后在新建系统变量框里面输入下面内容即可
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
2.4、Java 验证
打开终端,输入 java -version
,查看安装版本
3、Java编译&运行
3.1、Java的运行过程
Java 程序的运行必须经过编写、编译和运行 3 个步骤。
- 编写:在 Java 开发环境中编写程序代码,形成后缀名为
.java
的 Java 源文件。 - 编译:使用 Java 编译器(
javac
命令)对源文件进行编译,如果源代码中没有语法错误,编译器会生成后缀名为.class
的字节码文件。这个字节码文件是跨平台的,可以在任何安装了 Java 运行环境(JRE)的机器上运行。 - 运行:使用 Java 解释器(
java
命令)对字节码文件进行解释运行,将字节码翻译成机器代码并执行,最后显示运行结果。
这个过程中,Java 的跨平台特性得到了充分体现,即"一次编写,到处运行"。
Java 程序运行流程如图所示:
Java 字节码和 Java 虚拟机(JVM)是实现 Java 跨平台特性的关键。
Java 字节码:Java 字节码是一种中间代码,是 Java 源文件经过 Java 编译器编译后生成的。它是一种二进制文件,既不依赖于具体的硬件环境,也不依赖于具体的操作系统环境。Java 字节码需要由 Java 解释器进行解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。
Java 虚拟机(JVM):JVM 是运行 Java 程序的软件环境,Java 解释器是 JVM 的一部分。JVM 负责将 Java 字节码翻译成具体硬件环境和操作系统平台下的机器代码并执行。这样,Java 程序就可以在任何安装了 JVM 的机器上运行,无需考虑当前的硬件平台和操作系统环境,也无需考虑字节码文件是在何种平台上生成的。
Jvm 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 Jvm 中运行 Java 程序实现的。
3.2、Java编译/解释型语言
Java 是编译型语言还是解释性语言?Java 语言既有编译型语言的特性,也有解释型语言的特性,它结合了两者的优点。
首先,编译型语言的特性:Java 程序需要先被编译成字节码(.class
文件),这个过程是编译过程。编译可以在编程阶段发现和修复一部分错误,提高程序的运行效率。
其次,解释型语言的特性:Java 字节码并不是可以直接运行的机器代码,它需要由 JVM 进行解释执行。这个过程使得 Java 程序具有了跨平台的能力,即"一次编写,到处运行"。
因此,Java 既是编译型语言,也是解释型语言。但由于其跨平台的特性,通常我们更倾向于将 Java 归类为解释型语言。
3.3、Java编译执行Demo
我们可以通过一个简单的 "Hello World" Demo 程序来了解 Java 的编译和执行过程。
首先,我们编写一个简单的 Java 程序:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
将以上代码保存为 HelloWorld.java
文件。
然后,我们使用 Java 编译器 javac
对源文件进行编译:
javac HelloWorld.java
编译成功后,会在当前目录下生成一个 HelloWorld.class
文件,这就是我们的字节码文件。
最后,我们使用 Java 解释器 java
来运行这个字节码文件:
java HelloWorld
运行成功后,控制台会输出 "Hello, World!",这就是我们的程序运行结果。
以上就是 Java 程序的编译和执行过程,通过这个过程,我们可以看到 Java 程序是如何从源代码变为可以运行的程序的。