java基础思维导图
《Java基础思维导图》
一、 Java 简介
1.1 发展历程
- Sun Microsystems (1995)
- Oracle (2010)
1.2 特性
- 简单性: 自动内存管理(垃圾回收)、易于学习。
- 面向对象: 封装、继承、多态。
- 平台无关性: JVM (Java Virtual Machine),Write Once, Run Anywhere。
- 安全性: 沙箱机制,防止恶意代码。
- 多线程: 并发执行。
- 健壮性: 异常处理,类型检查。
- 高性能: JIT (Just-In-Time) 编译器。
1.3 组成
- JDK (Java Development Kit): 开发工具包,包含JRE、编译器、调试器等。
- JRE (Java Runtime Environment): 运行环境,包含JVM和核心类库。
- JVM (Java Virtual Machine): Java虚拟机,负责解释执行字节码。
二、 Java 语法基础
2.1 数据类型
- 基本数据类型:
- 整数型:
byte
(1 字节)
short
(2 字节)
int
(4 字节)
long
(8 字节)
- 浮点型:
float
(4 字节)
double
(8 字节)
- 字符型:
- 布尔型:
- 引用数据类型:
- 类 (Class)
- 接口 (Interface)
- 数组 (Array)
- 枚举 (Enum)
2.2 变量
- 定义: 存储数据的内存空间。
- 声明: 指定变量名和数据类型。
- 初始化: 赋值。
- 作用域: 变量的可见范围。
- 生命周期: 变量存在的时长。
2.3 运算符
- 算术运算符:
+
, -
, *
, /
, %
, ++
, --
- 关系运算符:
==
, !=
, >
, <
, >=
, <=
- 逻辑运算符:
&&
, ||
, !
- 位运算符:
&
, |
, ^
, ~
, <<
, >>
, >>>
- 赋值运算符:
=
, +=
, -=
, *=
, /=
, %=
, &=
, |=
, ^=
, <<=
, >>=
, >>>=
- 三元运算符:
condition ? expression1 : expression2
2.4 流程控制
- 顺序结构: 按照代码顺序执行。
- 选择结构:
if
语句
if-else
语句
if-else if-else
语句
switch
语句
- 循环结构:
for
循环
while
循环
do-while
循环
- 跳转语句:
2.5 数组
- 定义: 存储相同数据类型元素的集合。
- 声明:
dataType[] arrayName;
或 dataType arrayName[];
- 初始化:
- 静态初始化:
int[] arr = {1, 2, 3};
- 动态初始化:
int[] arr = new int[3];
- 访问: 通过索引访问元素 (从0开始)。
- 多维数组: 数组的数组。
三、 面向对象编程 (OOP)
3.1 类和对象
- 类 (Class): 对象的模板或蓝图。
- 成员变量: 描述对象的属性。
- 成员方法: 描述对象的行为。
- 对象 (Object): 类的实例。
- 构造方法: 创建对象时调用的特殊方法,用于初始化对象。
3.2 封装 (Encapsulation)
- 将数据和方法包装在类中,隐藏内部实现细节,对外提供公共访问接口。
- 访问修饰符:
public
:公共的,任何类都可以访问。
protected
:受保护的,同一包下的类和子类可以访问。
default
(package-private):默认的,同一包下的类可以访问。
private
:私有的,只有本类可以访问。
- Getter 和 Setter 方法: 用于访问和修改私有成员变量。
3.3 继承 (Inheritance)
- 子类继承父类的属性和方法,提高代码重用性。
extends
关键字: 用于声明继承关系。
super
关键字: 用于访问父类的成员。
- 方法重写 (Override): 子类重新定义父类的方法。
3.4 多态 (Polymorphism)
- 一个接口,多种实现。
- 编译时多态 (静态多态): 方法重载 (Overload)。
- 运行时多态 (动态多态): 方法重写 (Override)。
- 向上转型: 将子类对象赋值给父类引用。
- 向下转型: 将父类引用转换为子类对象 (需要instanceof判断)。
3.5 抽象类和接口
- 抽象类 (Abstract Class): 不能被实例化的类,可以包含抽象方法和非抽象方法。
abstract
关键字
- 抽象方法:没有方法体的方法。
- 接口 (Interface): 定义一组规范,类必须实现这些规范。
interface
关键字
- 接口中的方法都是抽象的 (Java 8 以后可以有默认方法和静态方法)。
- 类可以实现多个接口。
- 接口可以继承多个接口。
四、 常用类库
4.1 String 类
- 特点: 不可变性。
- 常用方法:
length()
, charAt()
, substring()
, equals()
, equalsIgnoreCase()
, indexOf()
, lastIndexOf()
, replace()
, trim()
, toUpperCase()
, toLowerCase()
, split()
.
- StringBuffer 和 StringBuilder: 可变的字符串。
4.2 Math 类
- 常用方法:
abs()
, ceil()
, floor()
, round()
, max()
, min()
, pow()
, sqrt()
, random()
.
4.3 日期时间类
Date
类 (已过时)
Calendar
类
SimpleDateFormat
类 (日期格式化)
java.time
包 (Java 8 新增)
LocalDate
LocalTime
LocalDateTime
DateTimeFormatter
4.4 集合框架 (Collections Framework)
- Collection 接口:
- List 接口: 有序,可重复。
ArrayList
:基于数组实现,查询快,增删慢。
LinkedList
:基于链表实现,查询慢,增删快。
Vector
:线程安全,效率低。
- Set 接口: 无序,不可重复。
HashSet
:基于哈希表实现,速度快。
TreeSet
:基于红黑树实现,可排序。
LinkedHashSet
:HashSet + 链表,保持插入顺序。
- Map 接口: 键值对。
HashMap
:基于哈希表实现,速度快。
TreeMap
:基于红黑树实现,可排序。
LinkedHashMap
:HashMap + 链表,保持插入顺序。
Hashtable
:线程安全,效率低。
- Iterator 迭代器: 用于遍历集合。
五、 异常处理
5.1 异常分类
- Throwable: 所有异常的父类。
- Error: 严重的错误,通常无法恢复。
- Exception: 可以处理的异常。
- Checked Exception (受检异常): 必须显式处理 (try-catch 或 throws)。
- Unchecked Exception (非受检异常): 可以不显式处理 (RuntimeException 及其子类)。
5.2 异常处理机制
try-catch
语句: 捕获并处理异常。
finally
语句: 无论是否发生异常,都会执行的代码块。
throw
语句: 手动抛出异常。
throws
语句: 声明方法可能抛出的异常。
- 自定义异常: 继承
Exception
或 RuntimeException
类。