Java初始
1.JDK,JRE和JVM:
定义:
- JDK(Java Development Kit)
- 定义:JDK是Java开发工具包,是Java开发者用于编写、编译、调试和运行Java程序的核心组件。
- 包含内容:JDK包含了Java编译器(javac)、Java运行时环境(JRE)、Java开发工具(如调试器、打包工具等)以及Java标准库等。
- 用途:主要用于Java程序的开发,提供了完整的开发环境和工具集。
- JRE(Java Runtime Environment)
- 定义:JRE是Java运行时环境,用于运行Java程序。
- 包含内容:JRE包含了Java虚拟机(JVM)和Java标准库(Java API),但不包含开发工具。
- 用途:主要用于运行已经编译好的Java程序,不需要进行程序开发的用户只需安装JRE。
- JVM(Java Virtual Machine)
- 定义:JVM是Java虚拟机,是Java程序运行的基础。
- 功能:负责解释和执行Java字节码文件,将字节码翻译成特定操作系统能够理解的机器码。
- 特点:JVM是Java跨平台的关键,因为它可以在不同的操作系统上运行Java程序,实现了Java的“一次编写,到处运行”的理念。
联系
- 包含关系:JDK包含了JRE,而JRE包含了JVM。即JDK > JRE > JVM。这意味着安装JDK会自动包含JRE和JVM,而安装JRE则只包含JVM和Java标准库。
- 功能互补:JDK提供了完整的Java开发环境,包括编译、调试和运行Java程序所需的所有工具;JRE提供了运行Java程序所必需的环境;JVM则是Java程序运行的核心,负责解释和执行Java字节码。
- 共同目标:三者共同支持Java语言的跨平台特性,使得Ja2.va程序可以在不同的操作系统上运行而无需修改。
2.JDK的安装与配置
JDK安装:
目前JDK安装较为方便,秩序前往Oracle官网下载对应系统和Java版本的JDK安装包,下载完成后双击运行即可完成安装
JDK配置:
1. 配置环境变量(Windows)
注意:新版本的JDK可能已经自动配置了环境变量,因此可以首先尝试在命令提示符中输入java -version
来检查JDK是否已正确安装并配置。如果未显示版本号,则需要手动配置环境变量。
- 配置JAVA_HOME环境变量:
- 右键点击“此电脑”或“计算机”,选择“属性”。
- 点击“高级系统设置”,在弹出的系统属性窗口中点击“环境变量”。
- 在“系统变量”区域点击“新建”,创建名为
JAVA_HOME
的新变量,其值应设置为JDK的安装路径(如C:\Program Files\Java\jdk-18
)。
- 配置Path环境变量:
- 在“系统变量”中找到名为
Path
的变量,双击进行编辑。 - 在Path变量的值列表末尾添加
%JAVA_HOME%\bin
(注意用分号;
与其他值分隔)。 - 点击“确定”保存更改。
- 在“系统变量”中找到名为
注意:对于macOS和Linux用户,环境变量的配置方式会有所不同。通常,macOS用户可以通过修改~/.bash_profile
、~/.zshrc
等文件来配置环境变量,而Linux用户则可能需要编辑/etc/profile
或/etc/environment
等系统级配置文件。
2. 验证JDK安装与配置
- 打开命令提示符(Windows)或终端(macOS/Linux)。
- 输入
java -version
并回车,如果显示JDK的版本号,则说明JDK已正确安装并配置。 - 可选地,还可以输入
javac -version
来检查Java编译器是否也已正确配置。
3.Java编译和运行的cmd命令
编译:Javac
javac 源代码文件名.java
注意:为编译确定编码格式:
javac -encoding UTF-8 文件名.java
运行:
java 文件名.class
4.Java的跨平台原理
Java的跨平台原理主要基于其独特的编译和执行方式,以及Java虚拟机(JVM)的存在。
一、编译方式
- 源代码编译:Java源代码(.java文件)首先被Java编译器(javac)编译成一种中间代码,即字节码(.class文件)。这种字节码是平台无关的,它不与任何特定的硬件或操作系统直接关联。
二、执行方式
- 字节码执行:编译后的字节码文件不是直接由硬件执行,而是由Java虚拟机(JVM)来执行。JVM是一个可以安装在不同操作系统上的软件层,它提供了一个统一的运行时环境,使得Java程序能够在各种平台上运行。
- JVM的作用:JVM负责将字节码翻译成当前操作系统能够理解的机器码,并执行这些机器码。由于JVM是平台相关的,即不同的操作系统有不同的JVM实现,但JVM向上提供的接口是统一的,因此Java程序能够在不同平台上运行而无需修改。