第1章 Java开发环境搭建

本章概述

本章是Java学习的第一步,将带领你从零开始搭建Java开发环境。你将了解Java语言的历史背景、核心概念,并完成开发环境的配置,最终编写并运行你的第一个Java程序。


1.1 Java语言概述与发展历史

1.1.1 Java语言的诞生

Java语言由Sun Microsystems公司的James Gosling(詹姆斯·高斯林)团队于1995年推出。最初是为了开发家用电器控制系统,后来发现它非常适合互联网应用开发。

重要时间节点:

  • 1995年: Java 1.0正式发布,提出"Write Once, Run Anywhere"(一次编写,到处运行)的理念
  • 2004年: Java 5.0发布,引入泛型、增强for循环、自动装箱等重要特性
  • 2009年: Oracle收购Sun公司,接管Java的开发和维护
  • 2014年: Java 8发布,引入Lambda表达式和Stream API
  • 2017年: Java开始每6个月发布一个新版本
  • 2018年: Java 11发布(LTS长期支持版本)
  • 2021年: Java 17发布(LTS长期支持版本)
  • 2023年: Java 21发布(LTS长期支持版本)

1.1.2 Java语言的特点

1. 简单易学

  • 语法简洁,去除了C++中的指针、多继承等复杂特性
  • 自动内存管理(垃圾回收机制)

2. 面向对象

  • 一切皆对象的设计理念
  • 支持封装、继承、多态三大特性

3. 平台无关性

  • “一次编写,到处运行”(Write Once, Run Anywhere)
  • 通过Java虚拟机(JVM)实现跨平台

4. 安全性

  • 内置安全机制,如字节码验证、安全管理器
  • 没有指针,避免了内存泄漏和缓冲区溢出

5. 多线程

  • 内置多线程支持,便于开发高并发应用

6. 高性能

  • JIT(即时编译)技术提升执行效率
  • 持续优化的垃圾回收机制

1.1.3 Java的应用领域

1. 企业级应用开发

  • 银行系统、电商平台、ERP系统
  • 使用技术:Spring、SpringBoot、SpringCloud

2. Web应用开发

  • 网站后端开发、RESTful API
  • 使用技术:Servlet、JSP、SpringMVC

3. Android移动应用

  • Android应用开发(早期主要语言)

4. 大数据处理

  • Hadoop、Spark、Flink等大数据框架都基于Java

5. 分布式系统

  • 微服务架构、分布式计算
  • 使用技术:Dubbo、Zookeeper、Kafka

6. 游戏开发

  • 《我的世界》(Minecraft)就是用Java开发的

1.2 JDK、JRE、JVM的关系

理解这三个概念是Java学习的基础。

1.2.1 JVM(Java Virtual Machine - Java虚拟机)

定义: JVM是Java程序运行的核心,负责将字节码(.class文件)翻译成机器码执行。

作用:

  • 加载和执行字节码文件
  • 管理内存(堆、栈等)
  • 垃圾回收(自动释放不再使用的内存)
  • 提供运行时环境

特点:

  • 不同操作系统有不同的JVM实现
  • 但所有JVM都遵循统一的规范
  • 这就是Java跨平台的关键

1.2.2 JRE(Java Runtime Environment - Java运行环境)

定义: JRE是Java程序运行所需的最小环境。

组成:

JRE = JVM + Java核心类库 + 支持文件

作用:

  • 提供Java程序运行所需的所有资源
  • 如果你只是运行Java程序(不开发),只需安装JRE

包含内容:

  • JVM(虚拟机)
  • Java核心类库(如java.lang、java.util等)
  • 配置文件和资源文件

1.2.3 JDK(Java Development Kit - Java开发工具包)

定义: JDK是Java程序开发所需的完整工具包。

组成:

JDK = JRE + 开发工具(编译器、调试器等)

作用:

  • 提供Java程序开发所需的所有工具
  • 如果你要开发Java程序,必须安装JDK

包含内容:

  • JRE(运行环境)
  • javac(Java编译器)
  • java(Java解释器/启动器)
  • jar(打包工具)
  • javadoc(文档生成工具)
  • jdb(调试器)

1.2.4 三者关系图

┌─────────────────────────────────────┐
│              JDK                     │
│  ┌──────────────────────────────┐   │
│  │          JRE                 │   │
│  │  ┌───────────────────────┐   │   │
│  │  │       JVM             │   │   │
│  │  │  - 类加载器           │   │   │
│  │  │  - 字节码验证器       │   │   │
│  │  │  - 解释器/JIT编译器   │   │   │
│  │  │  - 垃圾回收器         │   │   │
│  │  └───────────────────────┘   │   │
│  │                              │   │
│  │  + Java核心类库              │   │
│  │  + 配置文件                  │   │
│  └──────────────────────────────┘   │
│                                     │
│  + javac (编译器)                   │
│  + jar (打包工具)                   │
│  + javadoc (文档生成工具)           │
│  + jdb (调试器)                     │
└─────────────────────────────────────┘

简单记忆:

  • JVM:跑程序的"发动机"
  • JRE:跑程序需要的"完整汽车"(发动机 + 车身)
  • JDK:开发程序需要的"汽车 + 工具箱"

1.3 JDK安装与环境变量配置

1.3.1 JDK版本选择

2024年推荐方案:

版本 特点 适用场景 推荐度
Java 8 (LTS) 最经典稳定,企业使用最广 学习经典Java、维护老项目 ⭐⭐⭐⭐
Java 11 (LTS) 删除旧特性,模块化支持 企业新项目、长期维护 ⭐⭐⭐⭐⭐
Java 17 (LTS) 现代特性最全,性能更优 新项目、追求新特性 ⭐⭐⭐⭐⭐
Java 21 (LTS) 最新LTS,虚拟线程等新特性 尝鲜、前沿项目 ⭐⭐⭐

初学者建议:

  • 首选 Java 11 或 Java 17 - 现代特性与企业应用的最佳平衡
  • 备选 Java 8 - 如果需要学习经典Java或兼容老项目
  • 不建议 Java 21 - 生态不够成熟,学习资料较少

注意: LTS (Long Term Support) 表示长期支持版本,至少支持8年。

1.3.2 下载JDK

方式一:Oracle官网(官方源)

  1. 访问:https://www.oracle.com/java/technologies/downloads/
  2. 选择对应版本和操作系统
  3. 下载安装包(Windows选择.exe或.msi,macOS选择.dmg,Linux选择.tar.gz)
  4. 注意:Oracle JDK商业使用需要许可证

方式二:OpenJDK(开源免费,推荐)

  1. Adoptium(原AdoptOpenJDK):https://adoptium.net/
    • 最推荐,稳定可靠,完全免费
    • 提供预编译的二进制包
  2. OpenJDK官网:https://jdk.java.net/
    • Oracle官方的OpenJDK版本
  3. 微软OpenJDK:https://www.microsoft.com/openjdk
    • 微软维护的OpenJDK版本

方式三:国内镜像(下载快)

  1. 清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/Adoptium/
  2. 华为云镜像:https://repo.huaweicloud.com/java/jdk/
  3. 阿里云镜像:https://developer.aliyun.com/mirror/

选择建议:

  • 初学者:Adoptium OpenJDK(免费、开源、稳定)
  • 企业用户:Oracle JDK 或 Azul Zulu
  • 追求速度:使用清华或华为镜像源

1.3.3 Windows系统安装JDK

步骤1:运行安装程序

  1. 双击下载的.exe安装文件
  2. 点击"下一步"
  3. 选择安装路径(建议:C:\Program Files\Java\jdk-11
  4. 等待安装完成

步骤2:配置环境变量

2.1 配置JAVA_HOME

  1. 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
  2. 在"系统变量"中点击"新建"
  3. 变量名:JAVA_HOME
  4. 变量值:JDK的安装路径(如:C:\Program Files\Java\jdk-11
  5. 点击"确定"

2.2 配置Path

  1. 在"系统变量"中找到"Path",双击编辑
  2. 点击"新建",添加:%JAVA_HOME%\bin
  3. 再新建一行,添加:%JAVA_HOME%\jre\bin
  4. 点击"确定"保存

步骤3:验证安装

打开命令提示符(Win + R,输入cmd),执行以下命令:

# 1. 查看Java版本
java -version

# 2. 查看编译器版本
javac -version

# 3. 验证JAVA_HOME环境变量
echo %JAVA_HOME%

# 4. 查看Path环境变量(检查是否包含JDK路径)
echo %PATH%

正确输出示例:

# java -version 输出:
java version "11.0.12" 2021-07-20 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.12+8-LTS-237)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.12+8-LTS-237, mixed mode)

# javac -version 输出:
javac 11.0.12

# echo %JAVA_HOME% 输出:
C:\Program Files\Java\jdk-11

# echo %PATH% 输出(应包含):
...;C:\Program Files\Java\jdk-11\bin;...

常见错误排查:

  • ❌ 提示"不是内部或外部命令" → 环境变量Path未配置或未生效,需重启命令提示符或重启电脑
  • ❌ 版本号不对 → 存在多个JDK,Path中的顺序有问题
  • ❌ JAVA_HOME显示空 → JAVA_HOME环境变量未配置成功

1.3.4 macOS系统安装JDK

步骤1:安装JDK

  1. 双击下载的.dmg文件
  2. 按照提示完成安装
  3. 默认安装路径:/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home

步骤2:配置环境变量

打开终端,编辑配置文件:

# macOS Catalina (10.15) 及更高版本使用zsh
vim ~/.zshrc

# 或使用nano编辑器
nano ~/.zshrc

# macOS 旧版本使用bash
vim ~/.bash_profile

# 查看当前使用的shell
echo $SHELL

添加以下内容:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

保存后执行:

# 如果使用zsh
source ~/.zshrc

# 如果使用bash
source ~/.bash_profile

步骤3:验证安装

java -version
javac -version

1.3.5 Linux系统安装JDK

方法一:使用包管理器安装

Ubuntu/Debian:

sudo apt update
sudo apt install openjdk-11-jdk

CentOS/RHEL:

sudo yum install java-11-openjdk-devel

方法二:手动安装

# 1. 解压JDK
tar -zxvf jdk-11_linux-x64_bin.tar.gz

# 2. 移动到/usr/local目录
sudo mv jdk-11 /usr/local/

# 3. 配置环境变量
sudo vim /etc/profile

# 添加以下内容:
export JAVA_HOME=/usr/local/jdk-11
export PATH=$JAVA_HOME/bin:$PATH

# 4. 使配置生效
source /etc/profile

# 5. 验证安装
java -version

1.4 IDE选择与安装(IntelliJ IDEA推荐)

1.4.1 常见Java IDE对比

IDE 优点 缺点 适合人群
IntelliJ IDEA 智能提示强大、插件丰富、用户体验好 占用内存较大、收费版价格高 推荐所有开发者
Eclipse 免费开源、插件多、轻量 界面较老、智能提示一般 预算有限的开发者
VS Code 轻量快速、插件生态好 Java开发需要配置插件 喜欢轻量编辑器的开发者
NetBeans 免费开源、功能完整 用户较少、社区不活跃 学生、初学者

推荐:IntelliJ IDEA Community Edition(社区版,免费)

1.4.2 下载与安装IntelliJ IDEA

步骤1:下载

  1. 访问官网:https://www.jetbrains.com/idea/download/
  2. 选择Community(社区版,免费)或Ultimate(旗舰版,付费)
  3. 下载对应操作系统的安装包

步骤2:安装

Windows:

  1. 双击安装程序
  2. 选择安装路径
  3. 勾选以下选项:
    • ✅ Create Desktop Shortcut(创建桌面快捷方式)
    • ✅ Add “bin” folder to the PATH(添加到环境变量)
    • ✅ .java(关联.java文件)
  4. 完成安装

macOS/Linux:

  1. 解压下载的文件
  2. 将应用移动到应用程序文件夹
  3. 启动IDEA

1.4.3 IDEA首次配置

1. 启动IDEA

  • 首次启动会要求导入配置,选择"Do not import settings"

2. 选择主题

  • IntelliJ(白色主题)
  • Darcula(黑色主题,推荐护眼)

3. 安装推荐插件

基础插件:

  • Chinese Language Pack - 中文语言包(可选)
  • Rainbow Brackets - 彩虹括号(强烈推荐)
  • Translation - 翻译插件

进阶插件(可后续安装):

  • Alibaba Java Coding Guidelines - 阿里巴巴Java开发规约
  • GitToolBox - Git增强工具
  • Key Promoter X - 快捷键提示
  • Maven Helper - Maven依赖分析

4. 基础设置优化

进入 File → Settings(Windows)或 Preferences(Mac):

(1) 编码设置(重要)

  • Editor → File Encodings
  • 将所有编码改为:UTF-8
    • Global Encoding: UTF-8
    • Project Encoding: UTF-8
    • Default encoding for properties files: UTF-8

(2) 字体设置

  • Editor → Font
  • 推荐字体:JetBrains Mono、Consolas、Source Code Pro
  • 字号:14-16

(3) 自动导入

  • Editor → General → Auto Import
  • ✅ Add unambiguous imports on the fly(自动导入)
  • ✅ Optimize imports on the fly(优化导入)

(4) 代码提示

  • Editor → General → Code Completion
  • ☐ Match case(取消勾选,不区分大小写提示)

(5) 显示行号和方法分隔线

  • Editor → General → Appearance
  • ✅ Show line numbers(显示行号)
  • ✅ Show method separators(显示方法分隔线)

1.4.4 创建第一个Java项目

步骤1:新建项目

  1. 点击"New Project"
  2. 选择"Java"
  3. Project SDK:选择已安装的JDK
  4. 点击"Next"

步骤2:配置项目

  1. 项目名称:HelloWorld
  2. 项目位置:选择一个合适的目录
  3. 点击"Finish"

步骤3:项目结构

HelloWorld/
├── .idea/          (IDEA配置文件)
├── out/            (编译输出目录)
├── src/            (源代码目录)
│   └── Main.java   (主类文件)
└── HelloWorld.iml  (项目配置文件)

1.4.5 IDEA常用快捷键

快捷键 功能 说明
Ctrl + Space 代码补全 智能提示代码
Ctrl + / 单行注释 快速注释/取消注释
Ctrl + Shift + / 多行注释 块注释
Ctrl + D 复制当前行 向下复制一行
Ctrl + Y 删除当前行 快速删除
Ctrl + Alt + L 格式化代码 自动排版
Shift + F10 运行程序 执行当前程序
Shift + F9 调试程序 调试模式运行
Alt + Insert 快速生成代码 getter/setter等
Ctrl + Alt + O 优化导入 删除无用import

1.5 Hello World程序

1.5.1 创建Java源文件

方法一:使用IDEA创建

  1. 在项目的src目录上右键
  2. New → Java Class
  3. 输入类名:HelloWorld
  4. 点击OK

方法二:手动创建

  1. 在src目录下创建文件:HelloWorld.java

1.5.2 编写代码

/**
 * 第一个Java程序:HelloWorld
 * @author 你的名字
 * @version 1.0
 */
public class HelloWorld {
    /**
     * 程序的入口方法
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 向控制台输出一句话
        System.out.println("Hello, World!");
        System.out.println("欢迎来到Java的世界!");
    }
}

1.5.3 代码详解

让我们逐行理解这段代码:

1. 文档注释

/**
 * 第一个Java程序:HelloWorld
 * @author 你的名字
 * @version 1.0
 */
  • /** */:文档注释,可以被javadoc工具提取生成API文档
  • @author:标注作者
  • @version:标注版本

2. 类声明

public class HelloWorld {
  • public:访问修饰符,表示公开的
  • class:声明这是一个类
  • HelloWorld:类名(必须与文件名完全一致)
  • {}:类的主体

3. main方法

public static void main(String[] args) {
  • public:公开的,可被外部访问
  • static:静态的,属于类而不是对象
  • void:无返回值
  • main:方法名(固定写法,程序入口)
  • String[] args:字符串数组参数(命令行参数)

4. 输出语句

System.out.println("Hello, World!");
  • System:系统类
  • out:标准输出流
  • println:输出并换行
  • "Hello, World!":要输出的字符串

1.5.4 运行程序

方法一:使用IDEA运行

  1. 点击代码行号旁边的绿色三角形
  2. 选择"Run ‘HelloWorld.main()’"
  3. 查看控制台输出

方法二:使用命令行运行

打开终端/命令提示符,切换到src目录:

# 1. 编译Java源文件
javac HelloWorld.java

# 2. 运行字节码文件(不需要.class后缀)
java HelloWorld

输出结果:

Hello, World!
欢迎来到Java的世界!

1.5.5 代码规范

从第一个程序开始就要养成良好的编码习惯:

1. 包命名规范(重要)

  • 格式:全小写,多个单词用.分隔
  • 规则:公司域名倒序 + 项目名 + 模块名
  • 示例:
    • com.company.project.module
    • com.example.helloworld
    • cn.edu.school.system.user
  • 避免:使用Java关键字、中文、特殊字符

2. 类命名规范

  • 大驼峰(每个单词首字母大写):HelloWorldStudentInfoUserController
  • 含义清晰,名词为主
  • 避免:helloTestAaa等无意义命名

3. 方法命名规范

  • 小驼峰(第一个单词小写,后续首字母大写):maingetUserNamecalculateTotal
  • 动词开头,表达行为
  • 常见前缀:get/set/is/has/add/delete/update/calculate

4. 变量命名规范

  • 小驼峰:ageuserNamestudentCount
  • 含义明确,避免单字母(除循环变量i、j、k)
  • 布尔类型建议用is/has开头:isActivehasPermission

5. 常量命名规范

  • 全大写,下划线分隔:MAX_VALUEDEFAULT_SIZEPI
  • 使用final static修饰
  • 示例:public static final int MAX_COUNT = 100;

6. 缩进与空格

  • 使用4个空格或1个Tab进行缩进(团队统一)
  • 运算符前后加空格:int a = 10 + 20;
  • 逗号后面加空格:method(a, b, c);
  • 左花括号前加空格:if (condition) {

7. 注释规范

  • 类必须有文档注释(/** */
  • 公共方法必须有文档注释
  • 复杂逻辑必须有单行注释(//
  • 避免无意义注释:int age; // 年龄

8. 一个源文件的标准结构

// 1. 包声明(如果有)
package com.example.demo;

// 2. import语句(按字母排序)
import java.util.ArrayList;
import java.util.List;

// 3. 类文档注释
/**
 * 类功能说明
 * @author 作者
 * @version 1.0
 * @since 2024-01-01
 */
// 4. 类声明
public class ClassName {
    // 5. 常量
    public static final int MAX_COUNT = 100;

    // 6. 成员变量
    private String name;
    private int age;

    // 7. 构造方法
    public ClassName() {
    }

    // 8. 方法
    public void method() {
    }

    // 9. main方法(如果有)
    public static void main(String[] args) {
    }
}

1.6 Java程序的编译与运行流程

1.6.1 完整流程图

┌──────────────┐
│  编写源代码  │  HelloWorld.java
│  (.java文件) │
└──────┬───────┘
       │
       ↓ javac编译
┌──────────────┐
│  编译为字节码 │  HelloWorld.class
│ (.class文件) │
└──────┬───────┘
       │
       ↓ java运行
┌──────────────┐
│  JVM加载执行 │
│  字节码文件  │
└──────┬───────┘
       │
       ↓
┌──────────────┐
│   输出结果   │
└──────────────┘

1.6.2 详细步骤解析

步骤1:编写源代码(.java文件)

  • 使用文本编辑器或IDE编写Java代码
  • 保存为.java文件
  • 文件名必须与公共类名完全一致

步骤2:编译源代码

使用javac编译器将源代码编译为字节码:

javac HelloWorld.java

编译过程:

  1. 词法分析:将源代码分解为token(关键字、标识符、符号等)
  2. 语法分析:检查语法是否正确(如括号是否匹配)
  3. 语义分析:检查语义是否正确(如类型是否匹配)
  4. 字节码生成:生成.class字节码文件

生成的字节码文件:

  • 文件名:HelloWorld.class
  • 内容:平台无关的字节码(二进制格式)
  • 特点:人类不可读,JVM可直接执行

步骤3:运行字节码

使用java命令运行字节码文件:

java HelloWorld

运行过程:

┌───────────────────────────────────┐
│        JVM启动并执行              │
├───────────────────────────────────┤
│ 1. 类加载器加载HelloWorld.class   │
│    ├─ Bootstrap ClassLoader       │
│    ├─ Extension ClassLoader       │
│    └─ Application ClassLoader     │
├───────────────────────────────────┤
│ 2. 字节码验证                     │
│    - 验证字节码格式是否正确       │
│    - 验证是否符合JVM规范          │
├───────────────────────────────────┤
│ 3. 准备阶段                       │
│    - 为类的静态变量分配内存       │
│    - 设置默认初始值               │
├───────────────────────────────────┤
│ 4. 解析阶段                       │
│    - 将符号引用转换为直接引用     │
├───────────────────────────────────┤
│ 5. 初始化                         │
│    - 执行静态代码块               │
│    - 初始化静态变量               │
├───────────────────────────────────┤
│ 6. 执行main方法                   │
│    - 调用main(String[] args)      │
│    - 执行方法内的代码             │
├───────────────────────────────────┤
│ 7. 输出结果                       │
│    - System.out.println()输出     │
└───────────────────────────────────┘

1.6.3 字节码示例

想看看字节码长什么样吗?使用反编译工具:

# 反编译查看字节码
javap -c HelloWorld.class

输出示例:

Compiled from "HelloWorld.java"
public class HelloWorld {
  public HelloWorld();
    Code:
       0: aload_0
       1: invokespecial #1  // Method java/lang/Object."<init>":()V
       4: return

  public static void main(java.lang.String[]);
    Code:
       0: getstatic     #7  // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #13 // String Hello, World!
       5: invokevirtual #15 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: return
}

1.6.4 跨平台原理

为什么Java可以"一次编写,到处运行"?

Windows平台:           Linux平台:            macOS平台:
HelloWorld.java  →  HelloWorld.java  →  HelloWorld.java
      ↓                    ↓                    ↓
  javac编译          javac编译           javac编译
      ↓                    ↓                    ↓
HelloWorld.class ←── 同一个字节码文件 ───→ HelloWorld.class
      ↓                                         ↓
Windows JVM                               macOS JVM
      ↓                                         ↓
Windows机器码                             macOS机器码

关键点:

  1. .java.class:编译为统一的字节码格式
  2. 不同平台有不同的JVM实现
  3. JVM负责将字节码翻译成对应平台的机器码
  4. 开发者只需编写一次代码,JVM处理平台差异

1.7 常见问题排查

1.7.1 “javac不是内部或外部命令”

问题原因: 环境变量Path没有配置正确

解决方案:

  1. 检查JAVA_HOME是否配置正确
  2. 检查Path中是否添加了%JAVA_HOME%\bin
  3. 重启命令提示符或重启电脑
  4. 验证:echo %JAVA_HOME%(Windows)或echo $JAVA_HOME(macOS/Linux)

1.7.2 “找不到或无法加载主类”

问题原因:

  • 类名与文件名不一致
  • 没有在正确的目录下运行
  • 包名问题

解决方案:

# 错误示例
java HelloWorld.java  # ❌ 不要加.java后缀

# 正确示例
java HelloWorld       # ✅ 只写类名

1.7.3 编译错误:“类XXX是公共的,应在名为XXX.java的文件中声明”

问题原因: 公共类的类名必须与文件名完全一致(包括大小写)

解决方案:

// 文件名:HelloWorld.java
public class HelloWorld {  // ✅ 类名与文件名一致
}

// 文件名:HelloWorld.java
public class helloWorld {  // ❌ 大小写不一致
}

1.7.4 中文乱码问题

问题原因: 编码格式不一致

解决方案:

命令行编译时:

# 指定编码格式
javac -encoding UTF-8 HelloWorld.java
java HelloWorld

IDEA中设置:

  1. File → Settings → Editor → File Encodings
  2. 将所有编码改为UTF-8

1.7.5 IDEA无法识别JDK

解决方案:

  1. File → Project Structure → Project
  2. Project SDK:选择已安装的JDK
  3. 如果列表为空,点击"Add SDK" → JDK
  4. 选择JDK安装目录

1.7.6 Mac上Java版本切换

问题: 系统中安装了多个JDK版本

解决方案:

# 查看已安装的JDK
/usr/libexec/java_home -V

# 切换到指定版本
export JAVA_HOME=`/usr/libexec/java_home -v 11`

# 验证
java -version

1.7.7 权限问题(Linux/macOS)

问题原因: 没有执行权限

解决方案:

# 添加执行权限
chmod +x HelloWorld.java

# 或者使用sudo
sudo java HelloWorld

本章小结

核心知识点

  1. Java语言特点

    • 简单易学、面向对象、平台无关、安全性高
    • 应用广泛:企业级应用、Web开发、Android、大数据
  2. JDK、JRE、JVM关系

    • JVM:Java虚拟机,运行字节码的核心
    • JRE:Java运行环境 = JVM + 核心类库
    • JDK:Java开发工具包 = JRE + 开发工具
  3. 环境搭建

    • 下载并安装JDK
    • 配置JAVA_HOME和Path环境变量
    • 验证安装:java -versionjavac -version
  4. IDE选择

    • 推荐IntelliJ IDEA(智能提示强大)
    • 掌握常用快捷键提高效率
  5. Hello World程序

    • 理解Java程序的基本结构
    • 掌握类、main方法、输出语句的写法
    • 遵循代码规范
  6. 编译运行流程

    • 编写.java源文件 → javac编译为.class字节码 → java运行
    • 理解跨平台原理:字节码 + 不同平台的JVM

实践练习

练习1:环境验证
在命令行中执行以下命令,并截图保存结果:

java -version
javac -version
echo %JAVA_HOME%  # Windows
echo $JAVA_HOME   # macOS/Linux

练习2:修改Hello World
修改HelloWorld程序,输出以下内容:

姓名:张三
年龄:20
爱好:编程
座右铭:Stay Hungry, Stay Foolish

练习3:命令行编译运行
不使用IDE,仅通过命令行完成以下操作:

  1. 创建一个Java源文件
  2. 编译源文件
  3. 运行编译后的字节码文件

练习4:探索字节码
使用javap -c命令查看HelloWorld.class的字节码,观察输出结果。

练习5:多类文件
创建两个Java类:

  • Student.java:包含学生信息
  • Test.java:创建Student对象并输出信息

延伸阅读

推荐书籍:

  • 《Head First Java》:适合零基础入门
  • 《Java核心技术卷I》:系统全面的Java基础

推荐网站:

  • Oracle官方Java教程:https://docs.oracle.com/javase/tutorial/
  • 菜鸟教程:https://www.runoob.com/java/
  • LeetCode:https://leetcode.cn/(练习编程)

思维导图

Java开发环境搭建
├── Java概述
│   ├── 发展历史(1995年诞生)
│   ├── 语言特点(简单、跨平台、安全)
│   └── 应用领域(企业、Web、大数据)
│
├── JDK/JRE/JVM
│   ├── JVM:运行字节码
│   ├── JRE = JVM + 类库
│   └── JDK = JRE + 开发工具
│
├── 环境搭建
│   ├── 下载JDK
│   ├── 安装JDK
│   ├── 配置环境变量(JAVA_HOME、Path)
│   └── 验证安装(java -version)
│
├── IDE安装
│   ├── 选择IDEA
│   ├── 下载安装
│   ├── 首次配置
│   └── 创建项目
│
├── Hello World
│   ├── 创建类文件
│   ├── 编写代码
│   ├── 运行程序
│   └── 理解代码结构
│
└── 编译运行流程
    ├── .java源文件
    ├── javac编译为.class
    ├── JVM加载执行
    └── 输出结果

参考资料

官方文档

  1. Oracle Java官方文档
    https://docs.oracle.com/en/java/
    权威的Java官方文档,包含API文档、教程和技术规范

  2. Java SE官方教程
    https://docs.oracle.com/javase/tutorial/
    Oracle提供的官方Java学习教程,系统全面

  3. OpenJDK官网
    https://openjdk.org/
    开源Java开发工具包项目主页

推荐书籍

  1. 《Head First Java》(中文版:《深入浅出Java》)
    作者:Kathy Sierra, Bert Bates
    适合零基础入门,图文并茂,趣味性强

  2. 《Java核心技术 卷I:基础知识》(原书第12版)
    作者:Cay S. Horstmann
    系统全面的Java基础教材,适合深入学习

  3. 《Java编程思想》(第4版)
    作者:Bruce Eckel
    Java经典著作,深入讲解面向对象编程思想

在线学习平台

  1. 菜鸟教程 - Java教程
    https://www.runoob.com/java/
    中文入门教程,适合快速上手

  2. 廖雪峰的Java教程
    https://www.liaoxuefeng.com/wiki/1252599548343744
    通俗易懂的中文教程,知识点清晰

  3. Java全栈知识体系
    https://pdai.tech/
    覆盖Java全栈技术的在线知识库

视频教程

  1. 尚硅谷Java基础教程
    https://www.bilibili.com/(搜索"尚硅谷Java")
    系统完整的Java基础视频教程

  2. 黑马程序员Java零基础教程
    https://www.bilibili.com/(搜索"黑马程序员Java")
    适合零基础学习者的视频课程

实践平台

  1. LeetCode中国
    https://leetcode.cn/
    在线编程练习平台,提供大量算法题

  2. 牛客网
    https://www.nowcoder.com/
    IT求职学习平台,提供在线编程和面试题

  3. GitHub优秀Java项目
    https://github.com/topics/java
    学习开源项目的最佳平台

开发工具

  1. IntelliJ IDEA官方文档
    https://www.jetbrains.com/idea/documentation/
    IDEA使用文档和教程

  2. Maven官方文档
    https://maven.apache.org/guides/
    项目管理工具Maven的官方文档

社区论坛

  1. Stack Overflow
    https://stackoverflow.com/questions/tagged/java
    全球最大的技术问答社区

  2. CSDN - Java专区
    https://blog.csdn.net/nav/java
    中文技术博客平台

  3. 掘金 - Java标签
    https://juejin.cn/tag/Java
    高质量的中文技术社区


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐