Răsfoiți Sursa

feat: 添加 2026-07-08 数据类型与运算符笔记

涵盖 8 种基本数据类型、引用数据类型、变量创建格式
标识符命名规则(驼峰/蛇形)
算术/比较/逻辑/三目运算符详解及课后练习题
WanJL 5 zile în urmă
părinte
comite
c38432e0cd
1 a modificat fișierele cu 265 adăugiri și 0 ștergeri
  1. 265 0
      00-Java预科-笔记/20260708-数据类型与运算符.md

+ 265 - 0
00-Java预科-笔记/20260708-数据类型与运算符.md

@@ -0,0 +1,265 @@
+# Java 基础学习笔记
+
+> 日期:2026年7月8日
+> 包名:`com.lovecoding.day02`
+
+---
+
+## 一、数据类型
+
+### 1. 基本数据类型(8种)
+
+| 类别 | 关键字 | 说明 |
+|------|--------|------|
+| 整数 | `byte` | 字节型 |
+| 整数 | `short` | 短整型 |
+| 整数 | `int` | 整型(默认) |
+| 整数 | `long` | 长整型,值末尾加 `L` |
+| 浮点 | `float` | 单精度,值末尾加 `F` |
+| 浮点 | `double` | 双精度(默认) |
+| 字符 | `char` | 字符型,单引号,只能存1个字符 |
+| 布尔 | `boolean` | 布尔型,取值 `true` / `false` |
+
+### 2. 引用数据类型
+
+- 最常用:`String`(字符串)
+- 引用数据类型特点:**首字母大写**
+- 字符串值需要用**双引号**括起来
+
+### 3. 变量创建格式
+
+```java
+数据类型 变量名 = 变量值;
+int age = 25;
+```
+
+### 4. 示例代码
+
+```java
+// 整数类型
+byte a = 15;
+short b = 16;
+
+// 浮点类型
+float c = 3.14F;    // float 变量值后面必须加 F
+
+// 字符类型
+char d = 'a';       // 单引号,只能存1个字符
+
+// 布尔类型
+boolean e = true;   // true 真 / false 假
+
+// 字符串类型
+String name = "张三";
+String email = "12346@163.com";
+long phone = 13636363366L;
+```
+
+---
+
+## 二、标识符命名规则与规范
+
+### 规则(必须遵守)
+
+1. 只能使用:字母(a-z, A-Z)、数字(0-9)、符号(`$`、`_`)
+2. **不能以数字开头**(`1abc` 不行,`abc1` 可以)
+3. **不能使用 Java 关键字或保留字**,但可以包含关键字
+
+> 关键字是 Java 规定的固定单词(如 `int`、`byte`、`short` 等),IDEA 中显示为蓝色小写字母。
+
+### 规范(建议遵守)
+
+**驼峰式命名:**
+
+| 类型 | 规则 | 示例 |
+|------|------|------|
+| 大驼峰(类名) | 所有单词首字母大写 | `String`、`StringBuffer`、`StringBuilder` |
+| 小驼峰(变量名) | 第一个单词首字母小写,其余首字母大写 | `myClass`、`studentName`、`studentAge` |
+
+**蛇形命名:**
+
+- 所有单词字母小写,单词之间使用下划线分隔
+- 示例:`student_name`、`student_age`
+
+> **注意:** Java 严格区分大小写。命名要有含义,不要使用 `a`、`b`、`x` 这种无意义命名。
+
+---
+
+## 三、算术运算符
+
+| 运算符 | 含义 | 说明 |
+|--------|------|------|
+| `+` | 加 | |
+| `-` | 减 | |
+| `*` | 乘 | |
+| `/` | 除 | 两边都是整数,运算结果为整数(直接砍掉小数) |
+| `%` | 取余(模) | `10 % 3 = 1` |
+| `++` | 自增 | 为原数增加 1 |
+| `--` | 自减 | 为原数减少 1 |
+
+### `++` 前置与后置的区别
+
+| 形式 | 执行顺序 |
+|------|----------|
+| `++i`(前置) | **先自增**,再做其他操作(输出、赋值等) |
+| `i++`(后置) | **先做其他操作**(输出、赋值等),再自增 |
+
+```java
+int x = 1, y = 1;
+System.out.println(x++);   // 输出 1,然后 x 变为 2
+System.out.println(x);      // 输出 2
+System.out.println(++y);    // y 先变成 2,然后输出 2
+```
+
+#### 复杂示例
+
+```java
+int z = 1;
+System.out.println(z++ + z + z++ + z);
+// 运算过程:
+// z++ (1, z变为2) + z (2) + z++ (2, z变为3) + z (3)
+// = 1 + 2 + 2 + 3 = 8
+```
+
+---
+
+## 四、比较运算符
+
+| 运算符 | 含义 |
+|--------|------|
+| `>` | 大于 |
+| `<` | 小于 |
+| `==` | 等于 |
+| `>=` | 大于等于 |
+| `<=` | 小于等于 |
+| `!=` | 不等于 |
+
+> **注意:** 比较运算符的运算结果一定是**布尔类型**(`true` / `false`)。
+
+```java
+int a = 10, b = 5;
+System.out.println(a > b);   // true
+System.out.println(a < b);   // false
+System.out.println(a == b);  // false
+System.out.println(a >= b);  // true
+System.out.println(a <= b);  // false
+System.out.println(a != b);  // true
+```
+
+---
+
+## 五、逻辑运算符
+
+| 运算符 | 名称 | 规则 |
+|--------|------|------|
+| `&` | 与(AND) | 两边同时为 `true`,结果才为 `true` |
+| `\|` | 或(OR) | 两边同时为 `false`,结果才为 `false` |
+| `!` | 非(NOT) | 取反 |
+| `&&` | 短路与 | 左边为 `false`,右边不运算,直接返回 `false` |
+| `\|\|` | 短路或 | 左边为 `true`,右边不运算,直接返回 `true` |
+| `^` | 异或(XOR) | 两边相同返回 `false`,不同返回 `true` |
+
+### 真值表
+
+| a | b | a & b | a \| b | a ^ b |
+|---|---|-------|--------|-------|
+| true | true | true | true | false |
+| true | false | false | true | true |
+| false | true | false | true | true |
+| false | false | false | false | false |
+
+### 示例代码
+
+```java
+// & 与
+boolean b1 = 15 > 3 & 7 == 6;   // true & false = false
+
+// | 或
+boolean b2 = 15 > 3 | 7 == 6;   // true | false = true
+
+// ! 非
+boolean b3 = !(15 > 3);          // !true = false
+
+// ^ 异或
+System.out.println(true ^ true);    // false
+System.out.println(true ^ false);   // true
+```
+
+---
+
+## 六、三目(三元)运算符
+
+### 语法
+
+```java
+布尔表达式 ? 表达式1 : 表达式2
+```
+
+- 如果布尔表达式为 `true`,执行表达式1
+- 如果布尔表达式为 `false`,执行表达式2
+
+### 运算符分类
+
+| 类型 | 说明 | 示例 |
+|------|------|------|
+| 单目运算符 | 只有一个操作数 | `++`、`--` |
+| 双目运算符 | 左右两侧各有一个操作数 | `+`、`-`、`*`、`/` 等 |
+| 三目运算符 | 有三个操作数 | `?:` |
+
+### 示例
+
+```java
+// 嵌套三目
+System.out.println(15 > 3 ? 3 > 6 ? 17 : 15 : "假");
+// 第一个条件 15>3 为 true,执行 3>6?17:15
+// 3>6 为 false,结果为 15
+```
+
+---
+
+## 七、课后练习题
+
+1. 定义两个整数 a 和 b,使用算术运算符计算并输出 `a + b`、`a - b`、`a * b`、`a / b`、`a % b`。
+2. 定义一个整数,使用三目运算符判断它是奇数还是偶数,输出"奇数"或"偶数"。
+3. 定义三个整数,使用三目运算符找出并输出其中的最大值。
+4. 定义一个年份,使用逻辑运算符判断是否为闰年(能被4整除且不能被100整除,或能被400整除),输出 `true` 或 `false`。
+5. 定义一个整数 score(0-100),使用嵌套三目运算符输出等级:`score >= 90` 为 "A",`score >= 60` 为 "B",否则为 "C"。
+6. 定义一个整数,使用逻辑运算符判断它是否满足:大于10 **且** 小于100,输出 `true` 或 `false`。
+7. 定义一个字符,使用比较运算符判断它是否为大写英文字母('A' 到 'Z' 之间),输出 `true` 或 `false`。
+8. 已知 `int a = 5; int b = 5;` 分别执行 `int x = a++;` 和 `int y = ++b;` 后,输出 `x`、`a`、`y`、`b` 的值,并说明前置和后置自增的区别。
+9. 定义一个三位正整数,使用算术运算符拆分出它的个位、十位、百位,按格式输出。
+10. 定义三个边长 a、b、c,使用比较运算符和逻辑运算符判断能否构成三角形(任意两边之和大于第三边),输出 `true` 或 `false`。
+
+---
+
+## 八、变量类型选择参考
+
+| 名词 | 推荐类型 |
+|------|----------|
+| 成绩 | `int` / `double` |
+| 年龄 | `int` |
+| 性别 | `char` |
+| 学生编号 | `int` / `String` |
+| 身高 | `double` |
+| 体重 | `double` |
+| 姓名 | `String` |
+| 手机号 | `long` / `String` |
+| 邮箱 | `String` |
+| 地址 | `String` |
+| 工龄 | `int` |
+| 月薪 | `double` |
+| 税率 | `double` |
+| 折扣 | `double` |
+| 数量 | `int` |
+| 单价 | `double` |
+| 总分 | `int` / `double` |
+| 排名 | `int` |
+| 是否激活 | `boolean` |
+| 余额 | `double` |
+| 利率 | `double` |
+| 有效天数 | `int` |
+| 体温 | `double` |
+| 是否毕业 | `boolean` |
+
+---
+