第二单元思维导图

第二单元思维导图

中心主题: 第二单元

一、 数据类型与运算符

1. 数据类型
  • 基本数据类型
    • 整数类型
      • byte (8 bits)
      • short (16 bits)
      • int (32 bits)
      • long (64 bits)
      • 字面量表示:十进制,八进制(0开头),十六进制(0x开头),二进制(0b开头, Java 7+)
    • 浮点数类型
      • float (32 bits)
      • double (64 bits)
      • 字面量表示: 小数点,科学计数法(e/E)
      • 精度问题
    • 字符类型
      • char (16 bits, Unicode)
      • 字面量表示:单引号括起来的单个字符
      • 转义字符:\n, \t, \r, \b, \, \', \"
    • 布尔类型
      • boolean (true or false)
      • 字面量表示: true, false
        • 引用数据类型
    • 类 (Class)
      • 定义:使用 class 关键字
      • 对象:类的实例
    • 接口 (Interface)
      • 定义:使用 interface 关键字
      • 作用:定义规范,实现多重继承类似的功能
    • 数组 (Array)
      • 定义:相同类型元素的集合
      • 声明:type[] arrayName;type arrayName[];
      • 初始化:静态初始化,动态初始化
    • 枚举 (Enum)
      • 定义:使用 enum 关键字
      • 用途:定义有限数量的常量
        • 类型转换
    • 自动类型转换 (隐式转换)
      • 低精度 -> 高精度
      • byte -> short -> int -> long -> float -> double
    • 强制类型转换 (显式转换)
      • 高精度 -> 低精度
      • 可能会导致精度丢失
      • 语法:(type) value
        • 包装类
    • Byte, Short, Integer, Long, Float, Double, Character, Boolean
    • 用途:将基本数据类型封装成对象
    • 自动装箱 (Autoboxing)
    • 自动拆箱 (Unboxing)
2. 运算符
  • 算术运算符
    • + (加)
    • - (减)
    • * (乘)
    • / (除)
    • % (取余/模)
    • ++ (自增)
    • -- (自减)
      • 前缀形式:++i, --i (先运算,后使用)
      • 后缀形式:i++, i-- (先使用,后运算)
        • 关系运算符
    • == (等于)
    • != (不等于)
    • > (大于)
    • < (小于)
    • >= (大于等于)
    • <= (小于等于)
    • 结果为 boolean 类型
      • 逻辑运算符
    • && (逻辑与)
      • 短路与:如果左侧表达式为 false,则不计算右侧表达式
    • || (逻辑或)
      • 短路或:如果左侧表达式为 true,则不计算右侧表达式
    • ! (逻辑非)
    • & (按位与)
    • | (按位或)
    • ^ (按位异或)
      • 位运算符
    • >> (右移)
    • << (左移)
    • >>> (无符号右移)
    • & (按位与)
    • | (按位或)
    • ^ (按位异或)
    • ~ (按位取反)
      • 赋值运算符
    • = (简单赋值)
    • +=, -=, *=, /=, %=, &=, |=, ^=, >>=, <<=, >>>= (复合赋值)
      • 条件运算符 (三元运算符)
    • condition ? expression1 : expression2
      • 字符串连接运算符
    • + (字符串连接)
    • 任何数据类型与字符串相加,都会转换为字符串
      • 运算符优先级
    • 括号 > 单目运算符 > 算术运算符 > 位运算符 > 关系运算符 > 逻辑运算符 > 条件运算符 > 赋值运算符

二、 流程控制

1. 顺序结构
  • 代码从上到下依次执行
2. 选择结构
  • if 语句
    • if (condition) { ... }
    • if (condition) { ... } else { ... }
    • if (condition1) { ... } else if (condition2) { ... } else { ... }
      • switch 语句
    • switch (expression) { case value1: ... break; case value2: ... break; default: ... }
    • expression 的类型:byte, short, int, char, enum, String (Java 7+)
    • case 穿透:如果没有 break 语句,会继续执行下一个 case
3. 循环结构
  • for 循环
    • for (initialization; condition; increment) { ... }
    • 执行顺序:initialization -> condition -> 循环体 -> increment -> condition ...
    • 无限循环:for (;;) { ... }
      • while 循环
    • while (condition) { ... }
    • 先判断条件,再执行循环体
    • 无限循环:while (true) { ... }
      • do-while 循环
    • do { ... } while (condition);
    • 先执行循环体,再判断条件
    • 至少执行一次
      • 增强 for 循环 (foreach 循环)
    • for (type variable : collection) { ... }
    • 用于遍历数组和集合
      • break 语句
    • 用于跳出循环
    • 可以跳出多层循环 (使用标签)
      • continue 语句
    • 用于跳过本次循环,继续下一次循环
    • 可以跳过指定循环 (使用标签)

三、 方法

1. 方法定义
  • [访问修饰符] [static] 返回值类型 方法名(参数列表) { ... return 返回值; }
    • 访问修饰符:public, private, protected, 默认
    • static: 静态方法,属于类,可以直接通过类名调用
    • 返回值类型:void (没有返回值) 或 具体类型
    • 方法名:标识符,符合命名规范
    • 参数列表:类型 参数名, 类型 参数名, ...
    • return 语句:返回返回值 (如果返回值类型不是 void)
2. 方法调用
  • 对象.方法名(参数); (非静态方法)
    • 类名.方法名(参数); (静态方法)
3. 方法重载 (Overloading)
  • 方法名相同,参数列表不同 (参数类型,参数个数,参数顺序)
    • 与返回值类型无关
4. 方法递归 (Recursion)
  • 方法调用自身
    • 需要有递归出口 (结束条件)
    • 可能会导致栈溢出 (StackOverflowError)

四、 数组深入

1. 多维数组
  • 数组的元素也是数组
    • 声明: type[][] arrayName;
    • 初始化:
      • 静态初始化: int[][] arr = {{1,2}, {3,4,5}};
      • 动态初始化: int[][] arr = new int[2][3];int[][] arr = new int[2][]; arr[0] = new int[3]; arr[1] = new int[4];
2. 数组的拷贝
  • System.arraycopy(src, srcPos, dest, destPos, length);
    • Arrays.copyOf(originalArray, newLength);
    • 克隆(clone()方法):返回数组的一个副本。
3. 数组排序
  • Arrays.sort(array); 默认升序
    • 自定义排序可以使用Comparator接口。
4. 数组的查找
  • 线性查找
    • 二分查找 (binarySearch):要求数组已经排序。Arrays.binarySearch(array, key);
上一个主题: 西游记思维导图 下一个主题: 七下英语思维导图

相关思维导图推荐

分享思维导图