📋 知识地图
说明:✅ = 已有覆盖(可继续深化) ⬜ = 待扩充
一、Java 语言概述
- ✅ Java 历史与三大体系(SE / EE / ME)
- ✅ JVM / JRE / JDK 的关系
- ✅ Java 核心特性:面向对象、跨平台、内存管理
- ⬜ Java 版本演进(8 → 11 → 17 → 21 LTS)
- ⬜ OpenJDK vs Oracle JDK
二、开发环境
- ⬜ JDK 安装与 JAVA_HOME 配置
- ⬜ IDE 选择(IntelliJ IDEA / Eclipse / VS Code)
- ⬜ Maven / Gradle 构建工具入门
- ⬜ 项目结构规范(src/main/java / resources)
三、程序结构与语法基础
- ✅ Hello World 与类结构
- ✅ 基本数据类型(int / String / char / boolean / float / double)
- ✅ 变量(成员变量 / 静态变量 / 局部变量)
- ✅ 类型转换(自动 / 强制 / String↔int)
- ⬜ 包装类与自动装箱拆箱
- ⬜ 值传递 vs 引用传递的本质
四、运算与表达式
- ✅ 算术 / 关系 / 逻辑 / 位运算
- ⬜ instanceof 类型检查
- ⬜ Java 运算符优先级
五、流程控制
- ✅ if / else if / else
- ✅ switch(支持 String 和枚举)
- ✅ for / while / do-while
- ✅ for-each 增强循环
- ✅ break / continue
六、面向对象核心
- ✅ 类与对象的定义
- ✅ 封装(private / 访问控制 / getter-setter)
- ✅ 继承(extends / super)
- ⬜ 多态(方法重写 / 向上转型 / 动态绑定)
- ⬜ 抽象类(abstract)vs 接口(interface)
- ⬜ final 关键字(类 / 方法 / 变量)
- ⬜ static 关键字深入(静态代码块 / 静态内部类)
- ⬜ Object 类(toString / equals / hashCode / clone)
- ⬜ 构造方法链与初始化顺序
七、字符串与内部类
- ⬜ String 不可变性原理与字符串常量池
- ⬜ StringBuilder / StringBuffer
- ⬜ 内部类(成员内部类 / 局部内部类 / 匿名内部类)
- ⬜ Lambda 表达式(Java 8+)
八、集合框架(Java 的容器体系)
- ⬜ Collection 接口体系总览
- ⬜ List:ArrayList vs LinkedList
- ⬜ Set:HashSet / TreeSet / LinkedHashSet
- ⬜ Map:HashMap / TreeMap / LinkedHashMap
- ⬜ HashMap 底层原理(数组+链表+红黑树)
- ⬜ Collections 工具类
- ⬜ 泛型在集合中的使用
九、异常处理
- ⬜ 异常体系(Throwable → Error / Exception)
- ⬜ 受检异常(checked)vs 非受检异常(runtime)
- ⬜ try-catch-finally / try-with-resources
- ⬜ throw vs throws
- ⬜ 自定义异常
十、I/O 流与文件操作
- ⬜ 流的概念(字节流 vs 字符流)
- ⬜ FileInputStream / FileOutputStream / FileReader / FileWriter
- ⬜ 缓冲流(BufferedInputStream / BufferedReader)
- ⬜ 序列化(Serializable 接口)
- ⬜ NIO 基础(Path / Files / Channel / Buffer)
十一、多线程与并发
- ⬜ 线程创建(Thread / Runnable / Callable)
- ⬜ 线程生命周期与状态
- ⬜ synchronized 关键字(方法 / 代码块)
- ⬜ volatile 关键字
- ⬜ 线程池(ExecutorService / ThreadPoolExecutor)
- ⬜ Lock / ReentrantLock
- ⬜ 并发集合(ConcurrentHashMap / CopyOnWriteArrayList)
十二、泛型与注解
- ⬜ 泛型类 / 泛型方法 / 泛型接口
- ⬜ 类型擦除
- ⬜ 通配符(? extends / ? super)
- ⬜ 内置注解(@Override / @Deprecated / @SuppressWarnings)
- ⬜ 自定义注解与元注解
十三、JDBC 与数据库
- ⬜ JDBC 连接流程(DriverManager / Connection / Statement)
- ⬜ PreparedStatement 防 SQL 注入
- ⬜ ResultSet 结果集处理
- ⬜ 事务管理(commit / rollback)
- ⬜ 连接池简介(HikariCP / Druid)
十四、JVM 基础
- ⬜ JVM 内存模型(堆 / 栈 / 方法区 / 程序计数器)
- ⬜ 垃圾回收(GC)基本概念
- ⬜ 类加载机制(双亲委派模型)
十五、设计模式入门
- ⬜ 单例模式(饿汉 / 懒汉 / 双重检查锁)
- ⬜ 工厂模式
- ⬜ 代理模式
- ⬜ 观察者模式
十六、实战项目参考
- ✅ 坦克大战(源码引用)
- ⬜ 简易图书管理系统
- ⬜ REST API 开发(Spring Boot 入门)
java语言基础知识
一般常识
java运行在JVM(java虚拟机)上,以此达到跨平台。JDK是java程序开发工具,而jre是java运行的环境。总的说JDK>JRE>JVM。java主要分为java SE(开发和部署桌面、服务端等的应用程序,是EE的基础)、javaEE(服务端)、javaME(移动微端)三个体系。java是纯粹面向对象的语言,相对于C++抛弃了指针和多继承,增加了内存管理。
编译相关
javac即把.java源文件编译为.class二进制规范文件,在通过java命令在JVM解释执行。
java学习必知
对象具有属性和行为,具有变化的状态,是某个类别的实例,具有唯一性。
java语言程序结构
hello world!
1 | /*第一个java程序*/ |
数据类型
基本数据类型
- 整型 int
- 字符串 String
- 字符型 char
- 布尔型 boolean
- 实型(单精、双精) float/double
构造数据类型
- 枚举类型
- 数组类型 //
int[] score;int score[10];先申明,再赋值 - 结构体类型
- 共用体类型
变量
全局变量无static修饰,通过 对象名.变量名 访问,只要对象被引用,变量就存在;静态变量用static修饰,通过 类名.变量名或对象名.变量名 访问,生命周期取决于类的周期;局部变量仅在定义的方法中有效。
1 | public class DataClass { |
数据类型转换
自动类型转化
自动向高级数据类型转换。整型→实型
强制类型装换
(数据类型) (表达式)
如 (int)(x/2+y)
String转换为int
Integer.parseInt(str)
类似c语言调用外部头文件中的函数。
integer是一个类,int基本数据类型的封装类。
运算
常见表达式
| java运算 | 说明 |
|---|---|
| ++a | 先自加,再取值 |
| a– | 取值后自减 |
| b=-a | 取反,如12变-12 |
| a+=5 | a = a+5,即先加再赋值 |
位运算
| 运算符 | 说明 | 详细 |
|---|---|---|
| & | 按位与 | 9&5在内存中解为二进制,仅1与1为1 |
| | | 按位或 | 如上,有1则1 |
| ^ | 按位异或 | 如上。不同为1,相同为0 |
| ~ | 取反 | 取反 |
| << | 左移 | 二进制左移,丢高位,低位补0 |
| >> | 右移 | 丢地位,高位按高位内容补 |
程序结构
判断体
if判断结构
1 | if(表达式1) { |
switch语句(与c存在细微差别)
1 | public static void main(String[] args) { |
循环体
for循环
1 | for(执行1;判断1;每次循环句){ |
java特色for-each遍历数组
1 |
|
while循环
1 | while(为“真”即循环){ |
do-while循环
1 | do{ |
break和continue循环中断
break跳出当前一层循环;
continue结束本次循环开始下次。
各种类(一些默认包含的头文件)
Java为每种基本数据类型分别设计了对应的类,称之为包装类(Wrapper Classes)。基本数据类型转换为包装类的过程称为装箱,包装类变为基本数据类型的过程称为拆箱,即一个将同类型变量包装为一个类用于调用。 Java 所有的类都是Object类的子类,即java所有类默认包含Object这个头文件内容,即所有java类可调用object类的方法。
类的定义详细
1 | public class Person { |
类的封装
即把对象的细节隐藏,仅把通用的东西按规定的方式对外(只能通过设置的方法进行访问),如一台计算机内部复杂的内容,最后被封装为对外的几个接口。
类的继承
1 | public class Student extends People { //student类继承people的属性和方法 |