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 字节)
    • 字符型:
      • char (2 字节)
    • 布尔型:
      • boolean (true 或 false)
  • 引用数据类型:
    • 类 (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 循环
  • 跳转语句:
    • break
    • continue
    • return

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 语句: 声明方法可能抛出的异常。
  • 自定义异常: 继承 ExceptionRuntimeException 类。
上一个主题: 西游记思维导图 下一个主题: 情态动词的思维导图

相关思维导图推荐

分享思维导图