Loading...

文章背景图

Day 001-知识点汇总

2026-02-10
0
-
- 分钟
## 第一部分:Java入门与环境搭建

### 1. Java语言基础认知

**Q: Java是什么?Java之父是谁?目前属于哪家公司?**

**A:**

- **Java**是一门高级编程语言,1995年由Sun公司推出
- **Java之父**:詹姆斯·高斯林(James Gosling)
- **现属公司**:Oracle公司(2009年收购Sun公司)
- **名称来历**:原名Oak(橡树),因商标冲突改为Java(印度咖啡岛)

```java
// Java的标志性入门程序
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");  // 向世界问好,开启编程之门
    }
}
```

2. Java技术体系平台

Q: Java技术体系分为哪三个平台?基础班和就业班分别学习哪个?

A:

平台 全称 说明 学习阶段
Java SE Standard Edition 标准版,基础核心 基础班
Java EE Enterprise Edition 企业版,企业级应用 就业班
Java ME Micro Edition 小型版,移动设备(已淘汰) 不学
// Java SE基础示例:控制台输出
System.out.println("这是Java SE基础语法");

// Java EE企业级应用示例(后续学习):Web应用开发
// 使用Spring Boot构建企业级互联网应用

3. JDK的组成与作用

Q: JDK由哪几部分组成?JVM、JRE、核心类库分别是什么?

A:
JDK(Java Development Kit) = 开发工具 + JRE

组成部分 全称 作用
JVM Java Virtual Machine Java虚拟机,运行Java程序的地方,实现跨平台核心
核心类库 Core API Java自带的基础程序,供程序员调用
JRE Java Runtime Environment 运行环境 = JVM + 核心类库
开发工具 Development Tools javac(编译)、java(运行)、javadoc等
// 开发流程:源代码 -> 编译 -> 字节码 -> JVM运行
// HelloWorld.java(人能看懂的高级语言)
javac HelloWorld.java   // 编译工具javac:生成HelloWorld.class字节码
java HelloWorld         // 运行工具java:JVM加载.class文件执行

4. 环境变量配置(Path与JAVA_HOME)

Q: 为什么要配置Path环境变量?JAVA_HOME的作用是什么?

A:
Path环境变量:记住程序路径,实现在任意目录下启动程序。

JAVA_HOME:告诉操作系统JDK安装位置,方便其他技术通过它找JDK。

# 配置前:必须在JDK的bin目录下才能使用javac/java
cd D:\develop\Java\jdk-21\bin
javac HelloWorld.java

# 配置Path后:任意目录下都能使用
cd C:\Users\Desktop
javac HelloWorld.java   # 直接可用!

# JAVA_HOME配置(推荐方式)
JAVA_HOME = D:\develop\Java\jdk-21
Path中添加:%JAVA_HOME%\bin   # 使用变量引用,升级JDK只需改JAVA_HOME

5. Java程序的跨平台原理

Q: Java如何实现"一次编译,处处运行"的跨平台特性?

A: 核心原理:JVM虚拟机

  • Java程序编译为 .class字节码文件
  • 不同操作系统安装对应的JVM(Windows版JVM、Linux版JVM、Mac版JVM)
  • 字节码文件运行在JVM中,由JVM与底层操作系统交互
// 编译一次:生成与平台无关的字节码
javac HelloWorld.java   // 生成HelloWorld.class

// 到处运行:不同平台的JVM都能执行同一个.class文件
// Windows: java HelloWorld  -> Windows版JVM执行
// Linux:   java HelloWorld  -> Linux版JVM执行  
// Mac:     java HelloWorld  -> Mac版JVM执行

第二部分:IDEA开发工具

6. IDEA工程结构(Project/Module/Package/Class)

Q: IDEA的工程结构是怎样的?Project、Module、Package、Class的关系是什么?

A: 四层结构,类似小区建筑

层级 类比 本质 作用
Project 小区院子 文件夹 整个工程/项目
Module 楼栋 文件夹 功能模块划分
Package 楼层 文件夹 代码分类管理
Class 住户 .java文件 实际写代码的地方
// 工程结构示例路径:
// Project:  itheima-study
//   └── Module: day01-basic
//         └── src
//              └── Package: com.itheima._01hello
//                    └── Class: HelloWorld.java

package com.itheima._01hello;  // 包声明

public class HelloWorld {      // 类声明
    public static void main(String[] args) {
        System.out.println("理解工程结构!");
    }
}

7. IDEA常用快捷键

Q: IDEA中常用的快捷键有哪些?分别有什么作用?

A:

快捷键 作用 代码示例
psvm / main 快速生成main方法 public static void main(String[] args) {}
sout 快速生成输出语句 System.out.println();
Ctrl+D 复制当前行到下一行 快速复制代码行
Ctrl+Y / Ctrl+X 删除当前行 快速删除代码
Ctrl+Alt+L 格式化代码 自动调整代码缩进和格式
Ctrl+Shift+↑/↓ 上下移动代码行 调整代码顺序
Ctrl+/ 单行注释 // 注释内容
Ctrl+Shift+/ 多行注释 /* 注释内容 */
public class ShortcutDemo {
    public static void main(String[] args) {  // 输入psvm或main回车
        System.out.println("Hello");           // 输入sout回车
    
        // Ctrl+D复制以下行
        System.out.println("World");
        // 结果:
        // System.out.println("World");
        // System.out.println("World");
    
        // Ctrl+Shift+↑将本行上移
        // Ctrl+/ 快速注释
    }
}

8. IDEA类模板注释配置

Q: 如何配置IDEA的类模板注释?常用的模板变量有哪些?

A: 配置路径:Settings -> Editor -> File and Code Templates -> Class

// 推荐的类模板注释格式:
/**
 * @Description ${NAME}
 * @Author 你的名字
 * @Date ${YEAR}-${MONTH}-${DAY}
 */

// 实际生成效果(创建Demo类时):
/**
 * @Description Demo
 * @Author songyu
 * @Date 2026-01-25
 */
public class Demo {
    // 类内容
}

常用模板变量

  • ${NAME} - 当前类名
  • ${YEAR} - 当前年份
  • ${MONTH} - 当前月份
  • ${DAY} - 当前日期
  • ${TIME} - 当前时间

第三部分:Java基础语法

9. 注释的三种类型

Q: Java中有哪三种注释?各自的特点和使用场景是什么?

A:

类型 格式 特点 使用场景
单行注释 // 内容 只注释一行 简单说明
多行注释 /* 内容 */ 可注释多行 临时屏蔽代码块
文档注释 /** 内容 */ 可生成API文档 类、方法说明
package com.itheima._02注释;

/**
 * @Description Demo021
 * @Author songyu
 * @Date 2026-01-25 16:58
 * 
 * 这是文档注释:用于类上面,可生成API文档
 */
public class Demo021 {
  
    /**
     * 这是文档注释:用于方法上面
     * @param args 命令行参数
     */
    public static void main(String[] args) {
        // 单行注释:只能注释一行,解释下面代码的作用
        System.out.println("Hello World");
    
        /* 
         * 多行注释:可以注释多行
         * 常用于临时屏蔽一段代码
         * System.out.println("这行被注释了");
         */
    
        // 注意:只有源码有注释,.class字节码中没有注释,注释不影响程序运行
    }
}

10. 字面量的六种类型

Q: Java中常用的字面量有哪些类型?各自的格式要求是什么?

A:

类型 格式要求 示例 注意事项
整数 直接写数字 123, -99 无前缀
小数 带小数点 3.14, -0.5 浮点数
字符 单引号包裹,只有一个字符 'A', '中', ' ' 单引号!必须有且仅有一个
字符串 双引号包裹 "Hello", "中国" 双引号!可有多个字符
布尔 true/false true, false 小写,只有这两个值
空值 null null 不能直接输出
public class LiteralDemo {
    public static void main(String[] args) {
        // 整数
        System.out.println(123);
        System.out.println(-99);
    
        // 小数
        System.out.println(3.1415926);
    
        // 字符:单引号,有且仅有一个字符
        System.out.println('A');    // ✓
        System.out.println('中');   // ✓
        System.out.println(' ');    // ✓ 空格也是字符
        // System.out.println('');  // ✗ 错误:没有字符
        // System.out.println('AB'); // ✗ 错误:两个字符
    
        // 字符串:双引号,可有任意个字符
        System.out.println("Hello World");
        System.out.println("");     // ✓ 空字符串
        System.out.println("A");    // ✓ 一个字符也是字符串
    
        // 布尔
        System.out.println(true);
        System.out.println(false);
    
        // 空值:不能直接输出!
        // System.out.println(null);  // 编译报错!
    
        // 特殊字符:转义字符
        System.out.println("姓名\t张三");  // \t = tab制表符
        System.out.println("第一行\n第二行"); // \n = 换行
    }
}

11. 变量的定义与使用

Q: 什么是变量?变量的定义格式是什么?如何修改变量的值?

A: 变量是内存中的一块区域(小盒子),用于存储程序要处理的数据。

定义格式数据类型 变量名 = 初始值;

public class VariableDemo {
    public static void main(String[] args) {
        // 1. 定义变量:数据类型 变量名 = 值;
        int money = 100;           // 定义int类型变量money,存100
        int age = 20;              // 定义int类型变量age,存20
        String name = "黑马程序员"; // 定义String类型变量name
    
        // 2. 使用变量:直接通过变量名获取值
        System.out.println(money);  // 输出:100
        System.out.println(age);    // 输出:20
        System.out.println(name);   // 输出:黑马程序员
    
        // 3. 修改变量的值:变量名 = 新值;
        age = 22;                   // 直接赋新值
        System.out.println(age);    // 输出:22
    
        age = age + 1;              // 在原有值基础上计算
        System.out.println(age);    // 输出:23
    
        name = "AI智能应用开发";     // 字符串也可以修改
        System.out.println(name);   // 输出:AI智能应用开发
    
        // 变量的核心特点:值可以变化(可变)
    }
}

12. 变量使用的注意事项(重点)

Q: 使用变量时有哪些重要注意事项?

A:

注意事项 说明 错误示例
先声明后使用 变量必须先定义才能使用 System.out.println(age); // age未定义
类型匹配 什么类型变量存什么类型数据 int age = true; // 类型不匹配
作用域限制 只在定义它的 {}内有效 在大括号外访问内部定义的变量
不能重名 同一作用域内变量名唯一 int age = 20; int age = 30; // 重名
使用前初始化 可以定义时不赋值,但使用前必须赋值 int a; System.out.println(a); // 未初始化
public class VariableNotice {
    public static void main(String[] args) {
        // 1. 变量要先声明才能使用
        // System.out.println(age);  // 编译报错:找不到符号age
    
        // 2. 变量是什么类型,就必须装什么类型的数据
        // int age = true;  // 编译报错:不兼容的类型
    
        // 3. 变量从定义开始到"}"截止的范围内有效(作用域)
        {
            int innerVar = 10;
            System.out.println(innerVar);  // ✓ 在大括号内可用
        }
        // System.out.println(innerVar);  // ✗ 编译报错:超出作用域
    
        // 4. 同一个{}范围内,变量名不能重复
        int age = 20;
        // int age = 22;  // 编译报错:已在方法 main中定义了变量 age
    
        // 5. 变量定义时可以不赋初始值,但使用前必须有值
        int a, b, c;  // 同时定义3个变量,都没赋值,合法
        // System.out.println(a);  // 编译报错:可能尚未初始化变量a
    
        a = 10;  // 使用前赋值
        System.out.println(a);  // ✓ 输出:10
    }
  
    int age = 40;  // 与main中的age不在同一作用域,不冲突
    // int a = age;  // 编译报错:main中的age不能访问
}

13. 入门程序常见错误汇总

Q: 编写第一个Java程序时常见的错误有哪些?如何避免?

A:

错误类型 错误示例 正确写法 排查方法
文件未保存 修改后未Ctrl+S 保存后再编译 看文件名是否有*号
扩展名未显示 实际是 HelloWorld.java.txt 设置显示文件扩展名 文件夹选项勾选"文件扩展名"
文件名与类名不一致 HelloWorld.java vs class Helloworld 必须完全一致(包括大小写) 检查public class后的名字
大小写错误 string, system String, System Java严格区分大小写
主方法写错 mian, main() main, main(String[] args) 必须是 public static void main
中文符号 (中文分号) ;(英文分号) 检查标点符号是否为英文
括号不匹配 少写 }) 成对编写括号 IDE会红色提示
// 错误示例1:类名与文件名不一致
// 文件名:HelloWorld.java
public class helloworld {  // 错误:应为HelloWorld(W大写)
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

// 错误示例2:大小写错误
public class HelloWorld {
    public static void main(string[] args) {  // 错误:应为String(S大写)
        system.out.println("Hello");  // 错误:应为System(S大写)
    }
}

// 错误示例3:主方法写错
public class HelloWorld {
    public static void mian(String[] args) {  // 错误:mian应为main
        System.out.println("Hello");
    }
}

// 错误示例4:中文符号
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello");  // 错误:中文分号,应为;
    }
}

// 正确写法
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
评论交流

文章目录