|
|
@@ -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` |
|
|
|
+
|
|
|
+---
|
|
|
+
|