|
|
@@ -298,22 +298,49 @@ System.out.println(c6); // 输出 'a'(97 对应 ASCII 表的 'a')
|
|
|
|
|
|
> Java 中 8 种基本数据类型除了 `boolean`,其余 7 种都属于**数值类型**,都可以转换为数字。
|
|
|
|
|
|
+#### 编程语言的演变
|
|
|
+
|
|
|
+```
|
|
|
+机器语言(二进制)→ 汇编(单词缩写)→ 高级语言(C / C++ / Java ...)
|
|
|
+```
|
|
|
+
|
|
|
+计算机底层只能识别二进制,为了方便人类读写,逐渐发展出汇编和高级语言。
|
|
|
+
|
|
|
#### 编码与解码
|
|
|
|
|
|
| 概念 | 方向 | 说明 |
|
|
|
|------|------|------|
|
|
|
-| **编码** | 字符 → 二进制数 | 把人类可读的字符转换为计算机能识别的二进制 |
|
|
|
-| **解码** | 二进制数 → 字符 | 把二进制转换回人类可读的字符 |
|
|
|
+| **编码(Encode)** | 字符 → 二进制数 | 把人类可读的字符映射为计算机识别的二进制 |
|
|
|
+| **解码(Decode)** | 二进制数 → 字符 | 把二进制映射回人类可读的字符 |
|
|
|
|
|
|
#### 常见编码表(字符集)
|
|
|
|
|
|
| 编码表 | 说明 |
|
|
|
|--------|------|
|
|
|
-| **ASCII** | 美国标准信息交换码,使用 1 字节(7 位实际有效),共 128 个字符 |
|
|
|
+| **ASCII** | 美国标准信息交换码,使用 **1 字节(8 位)** 存放对照表,共 **256 个字符**(-128 ~ 127) |
|
|
|
| **GB-2312 / GBK** | 中国国家标准简体中文字符集 |
|
|
|
-| **Unicode** | 通用字符编码标准,使用 2 字节,可表示 65536 个字符 |
|
|
|
+| **Unicode** | 通用字符编码标准,基于 **2 字节(16 位)** 设计,可表示 **65536**(256×256)个字符 |
|
|
|
| **UTF-8** | Unicode 的一种变长编码实现,互联网最常用的字符集(中国大陆常用编码) |
|
|
|
|
|
|
+### 7. 类型推断 `var`(JDK 10+)
|
|
|
+
|
|
|
+> 从 **JDK 10** 开始,Java 新增了**局部变量类型推断**,使用 `var` 关键字声明变量,由编译器自动推断类型。
|
|
|
+
|
|
|
+```java
|
|
|
+var name = "张三"; // 推断为 String
|
|
|
+var age = 25; // 推断为 int
|
|
|
+var gender = '男'; // 推断为 char
|
|
|
+var score = 85.6; // 推断为 double
|
|
|
+```
|
|
|
+
|
|
|
+**本质说明:**
|
|
|
+
|
|
|
+- `var` 是**编译时语法糖**(syntactic sugar),编译后变量仍有确定的静态类型
|
|
|
+- **不影响运行性能**,编译后 `var` 会被替换为实际类型
|
|
|
+- 只能在**局部变量**(方法内部)使用,不能用于成员变量、方法参数等
|
|
|
+
|
|
|
+> ⚠️ 注意:Java 仍然是**强类型语言**——定义变量必须先指定类型,变量值必须符合类型要求。`var` 只是让编译器替你写类型,类型约束依然存在。
|
|
|
+
|
|
|
---
|
|
|
|
|
|
## 五、输出语句
|
|
|
@@ -554,6 +581,40 @@ public class Demo06 {
|
|
|
}
|
|
|
```
|
|
|
|
|
|
+### Demo07.java — 类型推断 var(JDK 10+)
|
|
|
+
|
|
|
+```java
|
|
|
+/**
|
|
|
+ * @author WanJl
|
|
|
+ * @version 1.0
|
|
|
+ * @title Demo07
|
|
|
+ * @description java的类型推断 var (JDK10+)
|
|
|
+ * @create 2026/7/13
|
|
|
+ */
|
|
|
+public class Demo07 {
|
|
|
+ public static void main(String[] args) {
|
|
|
+ /*
|
|
|
+ JDK10以上,新增了类型推断
|
|
|
+ 之前的Java属于强类型语言
|
|
|
+ - 定义变量的时候,必须先指定类型
|
|
|
+ - 变量值必须要符合类型的要求
|
|
|
+ int a = 10;
|
|
|
+ int b = "张三"; // 报错
|
|
|
+ */
|
|
|
+ var name = "张三";
|
|
|
+ var age = 25;
|
|
|
+ var gender = '男';
|
|
|
+ var score = 85.6;
|
|
|
+
|
|
|
+ // var 属于编译时语法糖,不影响运行性能
|
|
|
+ System.out.println(name);
|
|
|
+ System.out.println(age);
|
|
|
+ System.out.println(gender);
|
|
|
+ System.out.println(score);
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
---
|
|
|
|
|
|
## 九、随堂练习要点
|
|
|
@@ -575,6 +636,8 @@ public class Demo06 {
|
|
|
15. 整数除法结果直接**截断小数**,不是四舍五入
|
|
|
16. `char` 本质是数值类型,可查询 **ASCII 码表** 与 `int` 相互转换
|
|
|
17. 区分**编码**(字符→二进制)与**解码**(二进制→字符),了解常见字符集(ASCII、GBK、Unicode、UTF-8)
|
|
|
+18. 了解 `var` 类型推断(JDK 10+):编译时语法糖,不影响运行性能,只能在局部变量使用
|
|
|
+19. Java 仍然是**强类型语言**,`var` 只是让编译器替你写类型,类型约束依然存在
|
|
|
|
|
|
---
|
|
|
|