跳转至

Java 笔记导读 · 学习计划


一、阅读顺序

下面是推荐的笔记阅读路径,按认知负担从低到高排列。

第一阶段:环境与认知

  1. Java语言概述 — 建立整体认知:JDK/JRE/JVM 的关系,跨平台原理
  2. DOS指令 — 命令行基础,编译运行所需
  3. Hello World — 第一个程序,理解编译-运行流程
  4. Java开发注意 — 必读规则,避免低级错误
  5. 注释 — 三种注释格式,含 javadoc 用法

第二阶段:语法地基

  1. 标识符 — 命名规则与规范,奠定后续所有代码风格
  2. 变量 — ⭐ 核心篇,8 种基本类型、类型转换、String 互转,内容最扎实
  3. 运算符 — 算术/关系/逻辑运算符,注意优先级部分**尚未补全**
  4. 输入&输出 — Scanner 输入,System.out 输出

第三阶段:逻辑核心与存储

  1. 控制结构 — 分支与循环,内容偏简,建议结合练习题使用
  2. 数组 — ⭐ 核心篇,引用传递、拷贝、翻转、扩容讲解完整
  3. 多维数组 — ⚠️ 当前为空文件,需要补写

第四阶段:面向对象

  1. 类与对象概述 — ⭐ 核心篇,内存模型(栈/堆/方法区)、方法传参机制、构造器、this
  2. 类与对象进阶 — ⭐⭐ 最重要的一篇,继承、super、方法重写、多态(含动态绑定)、Object 类

第五阶段:工具与查阅

  1. Java API文档 — JDK 结构速览,配合官方文档使用

二、笔记评价

亮点

内存模型做得好 类与对象概述 里的 Mermaid 内存图(栈/堆/方法区)不是死记结论,而是从"首地址 + 偏移量"推导出数组从 0 开始的原因,属于超出课程的理解层次。

有比较意识 运算符 里写了 Java vs C++ 的对照,说明在主动将新语言与已有知识连接,而不是孤立学习。

变量章节扎实 覆盖了 8 种基本类型细节、自动类型转换链、强制转换陷阱、String 与基本类型互转,密度高,已超出入门水准。

OOP 章节有体系 构造器、传参机制、继承链(洋葱模型)、动态绑定、多态向上/向下转型全部串联,逻辑脉络清晰。

问题清单

问题 位置 严重程度
多维数组.md 是空文件 多维数组 🔴 高
运算符.md 优先级部分标题存在但正文为空 运算符 🟡 中
输入&输出.md 的"输出"部分混入了 API 文档内容,System.out 没有正式讲解 输入&输出 🟡 中
控制结构.md 内容过于精简,只有语法骨架,缺少说明和易混点 控制结构 🟡 中
类与对象进阶.md 过于庞大,混合了多个概念 类与对象进阶 🟡 中
前期笔记(Hello World、注释、DOS指令)内容过于单薄 前三节 🟢 低
大量代码保留课程原话(com.hspedu、"老师"等),缺乏个人重述 类与对象进阶 🟢 低
全套笔记无练习题、无自测模块 全局 🔴 高

三、还缺少什么内容

以下是当前笔记中**完全没有覆盖**的 Java 基础知识,属于后续必须补充的内容。

3.1 当前阶段的遗漏(应立即补)

  • 多维数组(文件存在但为空):二维数组的声明、初始化、遍历、内存模型
  • 运算符优先级表(文件存在但未完成)
  • 位运算符&|^~<<>>>>> (常见于面试和底层代码)
  • System.out 输出:print / println / printf 的区别,格式化输出

3.2 OOP 进阶(接下来要学的)

  • 封装(Encapsulation)private 属性 + getter/setter,访问控制的完整实践
  • 抽象类(abstract):抽象方法、抽象类的使用场景
  • 接口(interface):定义、实现、多接口、接口 vs 抽象类
  • 内部类:成员内部类、静态内部类、匿名内部类
  • 枚举(enum):基本用法,在 switch 中的应用

3.3 常用类库(核心工具)

  • String / StringBuilder / StringBuffer:字符串操作、不可变性、性能差异
  • Math / Random:常用数学方法
  • 包装类(Wrapper Classes):Integer、Double 等,自动装箱/拆箱
  • 日期与时间:LocalDate、LocalDateTime(Java 8+)

3.4 集合框架(重点)

  • ArrayList:动态数组,替代手动扩容
  • LinkedList:链表结构
  • HashMap / HashSet:哈希结构,与 hashCode/equals 的关系
  • Collections 工具类:排序、查找等
  • 泛型(Generics)<T> 语法,泛型类与泛型方法

3.5 异常处理

  • try-catch-finally:异常捕获基础
  • throws / throw:声明与手动抛出
  • 自定义异常:继承 Exception 类
  • 常见异常类型:NullPointerException、ArrayIndexOutOfBoundsException 等

3.6 文件与 IO

  • File 类:文件/目录的创建、删除、遍历
  • 字节流 / 字符流:InputStream、OutputStream、Reader、Writer
  • 缓冲流:BufferedReader、BufferedWriter

3.7 Java 8+ 新特性(建议学完基础后补)

  • Lambda 表达式
  • Stream API
  • Optional 类
  • 函数式接口

四、接下来的学习计划

原则

  1. 先补再进:先把当前笔记的空洞填平,再推进到下一阶段
  2. 写代码优先:每个新概念至少写一段自己的代码,不依赖课程原有例子
  3. 每节加一个自测:在笔记末尾加 ## 我能解释吗 一节,用自己的话写出核心概念

第一周:修复与巩固现有笔记

  • 补写 多维数组.md(二维数组声明、初始化、遍历、内存图)
  • 补全 运算符.md 的优先级表,加入位运算符内容
  • 修复 输入&输出.md,补写 System.out 输出格式化部分
  • 扩充 控制结构.md,加入常见陷阱(如 switch fall-through、for 死循环)
  • 类与对象进阶.md 拆分为:
  • 继承与super.md
  • 多态与动态绑定.md
  • Object类.md

第二周:OOP 核心补全

  • 新建 封装.md:private + getter/setter 完整实践,JavaBean 规范
  • 新建 抽象类.md:abstract 关键字,模板方法模式初探
  • 新建 接口.md:interface 定义与实现,与抽象类的对比表
  • 新建 内部类.md:四种内部类,重点是匿名内部类

第三周:常用类库

  • 新建 String类.md:常用方法、不可变性原理、字符串池
  • 新建 StringBuilder.md:与 String 的性能对比,链式调用
  • 新建 包装类.md:自动装箱/拆箱、Integer 缓存池(-128~127 陷阱)
  • 新建 Math与Random.md

第四周:集合框架入门

  • 新建 集合概述.md:Collection 体系结构图
  • 新建 ArrayList.md:动态数组,与普通数组对比
  • 新建 HashMap.md:基本 CRUD,Key 不重复原理
  • 新建 泛型.md<T> 语法,为什么需要泛型

第五周:异常处理

  • 新建 异常处理.md:异常体系(Throwable → Error/Exception),try-catch-finally
  • 新建 自定义异常.md:继承 Exception,实际使用场景

持续进行(贯穿整个学习周期)

  • 每学完一个概念,在本文档对应条目后面加 ✅
  • 每两周做一次综合练习题(LeetCode Easy 级别,用 Java 写)
  • 每月回顾一次 类与对象概述.md 的内存模型,确保理解没有退化

五、参考资源