# 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` | ---