# JavaSE 基础 — Day01 笔记 > **日期**:2026-07-13 > **项目**:`javaSE-260713-FirstJava` > **作者**:WanJL --- ## 一、Java 文件结构 一个 `.java` 源文件由两部分组成: | 组成部分 | 说明 | |---------|------| | **Java 代码** | 真正参与运行的程序指令 | | **Java 注释** | 写给程序员看的说明文字,**不参与编译和运行** | --- ## 二、Java 注释 Java 提供三种注释方式: | 注释类型 | 语法 | 用途 | |---------|------|------| | **单行注释** | `// 注释内容` | 注释单行说明 | | **多行注释** | `/* 注释内容 */` | 注释多行说明文字 | | **文档注释** | `/** 注释内容 */` | 为类、方法生成 API 文档(JDK 自带 `javadoc` 工具) | ### 示例 ```java // 这是单行注释 /* 这是 多行注释 */ /** * 这是文档注释 * @author WanJl * @version 1.0 */ ``` --- ## 三、核心概念 — 数据 Java 程序的核心是**数据**,数据分为不同**数据类型**。 ### 1. 常量 / 字面量 直接写在代码中的具体值称为**字面量(Literal)**。 ```java 25 // 整数字面量 "张三" // 字符串字面量 7 // 整数字面量 ``` ### 2. 变量 变量是存放数据的**容器**,可以理解为贴了标签的盒子。 #### 定义变量的格式 ```java 数据类型 变量名 = 变量值; ``` > 每一条 Java 语句以 **分号 `;`** 结束。 #### 示例 ```java int age = 25; // int → 数据类型(整数类型,integer 的缩写) // age → 变量名 // 25 → 字面量 ``` --- ## 四、Java 数据类型 Java 中的数据类型分为两大类: ### 1. 基本数据类型(Primitive Type) > 从 C / C++ 继承而来,共 **4 类 8 种**。 | 类型 | 说明 | 位数(bit) | 字节数(byte) | 表示范围 | |------|------|------------|---------------|---------| | `byte` | 字节型 | 8 | 1 | -2^7 ~ 2^7-1 | | `short` | 短整型 | 16 | 2 | -2^15 ~ 2^15-1 | | `int` | 整型 | 32 | 4 | -2^31 ~ 2^31-1 | | `long` | 长整型 | 64 | 8 | -2^63 ~ 2^63-1 | | `float` | 单精度浮点型 | 32 | 4 | 约 ±3.4×10³⁸ | | `double` | 双精度浮点型 | 64 | 8 | 约 ±1.8×10³⁰⁸ | | `char` | 字符型 | 16 | 2 | 0 ~ 65535(Unicode) | | `boolean` | 布尔型 | 1(JVM 中占 1 字节) | 1 | `true` / `false` | > **分配内存的原则**:程序运行在内存中,不同大小的数据需要分配不同的内存空间。例如「一个人的年龄」和「太阳到地球的距离(米)」显然不能分配相同大小的内存。 #### 存储单位换算 | 单位 | 换算 | |------|------| | 1 bit(比特位) | 1 位二进制数(0 或 1) | | 1 B(字节) | 8 bit | | 1 KB | 1024 B | | 1 MB | 1024 KB | | 1 GB | 1024 MB | | 1 TB | 1024 GB | > ⚠️ 计算机最小的存储单元是 **bit**,但最小的**分配单元**是 **byte**(1 字节 = 8 bit)。好比烧烤店 1 串 3 元,但至少 5 串起卖。 ### 2. 引用数据类型(Reference Type) > 面向对象语言特有的类型。Java 中除了 8 种基本数据类型,其余**全部**属于引用数据类型。 包括: - Java 类(`class`) - Java 接口(`interface`) - Java 数组(`[]`) - Java 枚举(`enum`) - Java 注解(`@interface`) > 后续课程会详细讲解引用类型。 ### 3. 基本数据类型注意事项(特殊规则) ```java // 特殊 1:long 类型赋值时,整数值末尾要加 L 或 l(推荐大写 L) long distance = 10000000000L; // 特殊 2:float 类型赋值时,小数值末尾要加 F 或 f float price = 19.99F; // 特殊 3:char 类型必须使用单引号 '' 括起来,且只能有 1 个字符 char gender = '男'; // 特殊 4:boolean 类型值只能是 true 或 false boolean isPass = true; ``` ### 4. 基本数据类型 vs 引用数据类型 Java 中除了 8 种基本数据类型,其余全部是引用数据类型。两者核心区别如下: | 对比维度 | 基本数据类型 | 引用数据类型 | |---------|-------------|-------------| | **存什么** | 直接存"值" | 存数据在内存中分配的**空间地址值** | | **默认值** | `0` / `0.0` / `false` | `null` | | **赋值** | 直接复制值,值之间互相独立 | 复制的是**地址值** | | **比较** | 比较的是值 | 比较的是地址(`==`) | #### 典型引用类型:String(字符串) ```java String name = "张三"; ``` > ⚠️ **注意**:`String` **不是**关键字(keyword),它是 Java 官方提供的类,属于引用数据类型。 > > 所有引用数据类型的命名都遵循**大驼峰(PascalCase)**:每个单词首字母大写。 > > 例如:`StringBuffer`、`MyClass`、`StudentName` --- ## 五、输出语句 ```java System.out.println(输出的内容); ``` | 关键字 | 含义 | |--------|------| | `System` | 系统 | | `out` | 输出 | | `print` | 打印 | | `ln` | 换行(等价于 `\n`) | > **快捷输入**:在 IntelliJ IDEA 中输入 `sout` + `Tab` 可直接生成。 --- ## 六、程序入口 — main 方法 ```java public static void main(String[] args) { // 代码写在这里才能执行 } ``` - `main` 方法是 Java 程序的**运行入口** - 所有可执行的代码必须放在 `main` 方法内部 - **快捷输入**:在 IntelliJ IDEA 中输入 `psvm` + `Tab` --- ## 七、变量命名规则 | 规则 | 说明 | |------|------| | ① 允许的字符 | 字母(a~z、A~Z)、数字(0~9)、美元符号 `$`、下划线 `_` | | ② 大小写敏感 | `age` 和 `Age` 是两个不同的变量 | | ③ 禁止关键字 | 不能使用 Java 关键字/保留字(如 `public`、`static`、`void`、`class` 等) | | ④ 驼峰命名法 | **小驼峰**:第一个单词首字母小写,后续单词首字母大写(如 `myName`) | --- ## 八、完整代码示例 ### Demo01.java — 概念总览 ```java public class Demo01 { // 单行注释 /* 多行注释 */ /** * 文档注释 */ // 此处仅为概念说明,无 main 方法,不能独立运行 } ``` ### Demo02.java — 变量与输出实战 ```java /** * @author WanJl * @version 1.0 * @title Demo02 * @create 2026/7/13 */ public class Demo02 { public static void main(String[] args) { // 1. 定义变量 int age = 24; // 2. 输出变量 System.out.println(age); } } ``` ### Main.java — 默认入口模板 ```java public class Main { public static void main(String[] args) { System.out.printf("Hello and welcome!"); for (int i = 1; i <= 5; i++) { System.out.println("i = " + i); } } } ``` ### Demo03.java — 数据类型实战 ```java /** * @author WanJl * @version 1.0 * @title Demo03 * @create 2026/7/13 */ public class Demo03 { public static void main(String[] args) { // 创建各种基本数据类型的变量并输出 int a = 15; System.out.println(a); // 特殊 1:long 类型要在整数值后面加 L 或 l // 特殊 2:float 类型要在小数后面加 F 或 f // 特殊 3:char 类型的值必须使用单引号,且只能是 1 个字符 // 特殊 4:boolean 类型的值只能是 true 或 false } } ``` ### Demo04.java — 基本类型 vs 引用类型 & String ```java /** * @author WanJl * @version 1.0 * @title Demo04 * @create 2026/7/13 */ public class Demo04 { public static void main(String[] args) { /* 引用数据类型 基本数据类型 引用数据类型 存什么 直接存"值" 存的数据在内存中分配的空间的地址值 默认值 0/0.0/false null 赋值 直接复制值,值跟值之间是独立的 复制的是地址值 比较 比较的是值 比较的是地址 非常典型的引用数据类型 字符串 String 类型 注意:String类型不是关键字,String的首字母大写 (所有的引用数据类型都采用大驼峰命名) StringBuffer MyClass StudentName */ /* 练习:定义变量,输出一份个人简历,包含: 姓名、年龄、学号、性别、身高、体重、学校、专业、班级、爱好 为这些变量设置符合实际情况的数据类型 */ String name = "张三"; System.out.println("我叫:" + name); } } ``` --- ## 九、随堂练习要点 1. 使用 `psvm` 快速生成 `main` 方法 2. 使用 `sout` 快速生成 `System.out.println()` 3. 理解 `//` 注释的内容不会被执行 4. 变量的定义必须遵循命名规则 5. 每条 Java 语句以 `;` 结尾 6. 牢记 **4 类 8 种**基本数据类型:`byte`、`short`、`int`、`long`、`float`、`double`、`char`、`boolean` 7. 区分基本数据类型与引用数据类型的 4 大区别(存什么、默认值、赋值、比较) 8. 掌握基本数据类型的 4 条特殊赋值规则(`L`、`F`、单引号、`true/false`) 9. 理解 bit(位)与 byte(字节)的关系及存储单位换算 10. 记住 `String` 是引用数据类型,**不是关键字**,采用大驼峰命名 11. **个人简历练习**:为姓名、年龄、学号、性别、身高、体重、学校、专业、班级、爱好选择合适的数据类型并输出 --- ## 十、拓展阅读 | 概念 | 说明 | |------|------| | 关键字(Keyword) | Java 预留的具有特殊含义的单词(如 `public`、`class`、`static`、`void`、`int`) | | 保留字(Reserved Word) | 暂未使用但预留的单词(如 `goto`、`const`) | | 标识符(Identifier) | 程序员自定义的名称(类名、方法名、变量名等) |