本文最后更新于4 天前,其中的信息可能已经过时,如有错误请发送邮件到1464396208@qq.com
## 整体流程图 ```mermaid flowchart TD A[字面量 Literal] --> B[核心定义:数据在程序中的书写格式] B --> C[六大类数据] C --> D[数值型] C --> E[文本型] C --> F[逻辑与空值] D --> D1[整数:直接书写 666 / -88] D --> D2[小数:带小数点 13.14 / -5.21] E --> E1[字符串:双引号,内容任意可空] E --> E2[字符:单引号,有且仅有一个字符] F --> F1[布尔:true / false 表示判断结果] F --> F2[空:null 表示什么都没有,不能直接打印] B --> G[特殊字符字面量] G --> G1[转义字符:\t \r \n] G1 --> G2[\t 制表符:将前面字符串长度补齐到 8 或 8 的倍数] G2 --> G3[应用场景:表格数据对齐] ```
各章节详细知识点
📌 一、字面量的定义与分类
主题内容
字面量是 Java 基础语法中的核心概念之一,本质上是数据在程序中的书写格式。它告诉程序员:不同类型的数据,在代码里应当以什么样的形式呈现。
核心概念
- 字面量(Literal):数据在程序中的书写格式。在部分资料中也被称作”常量”或”字面值”,但”常量”这一叫法并不严谨,最规范的说法仍是字面量。
- 字面量解决的核心问题是:在代码中要书写”18 岁””尼古拉斯阿伟””1 米 93″这类数据时,应当采用何种语法形式。
核心特性/工作原理
字面量一共覆盖六大类数据,可归为三组:

| 分组 | 类型 | 关键特征 |
|---|---|---|
| 数值型 | 整数、小数 | 直接书写,无需额外符号 |
| 文本型 | 字符串、字符 | 需用引号包裹,区分单/双引号 |
| 逻辑与空值 | 布尔、空 | 只有固定取值,语义特殊 |
对比/示例/注意事项
// 字面量就是直接写在代码里的"值"
System.out.println(18); // 整数字面量
System.out.println("尼古拉斯阿伟"); // 字符串字面量
System.out.println(1.93); // 小数字面量
⚠️ 注意事项:字面量是值的写法,而不是变量本身。它直接出现在代码中,表示一个固定不变的具体数据。
📌 二、整数与小数(数值型字面量)
主题内容
整数和小数是六类字面量中最简单的一类,属于数值型字面量。
核心概念
- 整数字面量:表示没有小数部分的数值,直接书写即可,无需任何前缀或后缀符号。
- 小数字面量:表示带小数部分的数值,通过小数点来体现,同样直接书写。
核心特性/工作原理
- 整数和小数都支持正负数,负数在数字前加
-号即可。 - 数值型字面量在书写时不需要引号,这与字符串/字符形成鲜明对比。
对比/示例/注意事项
public class ValueDemo1 {
public static void main(String[] args) {
System.out.println(666); // 正整数
System.out.println(-88); // 负整数
System.out.println(1.93); // 正小数
System.out.println(-3.71); // 负小数
}
}
编译与运行命令:
javac ValueDemo1.java # 编译
java ValueDemo1 # 运行
⚠️ 注意事项:整数与小数写完后不能直接单独占据一行代码——因为数据本身不构成一条完整语句,必须放在某个操作(如
System.out.println)中才有意义。
📌 三、字符串与字符(文本型字面量)
主题内容
字符串与字符是文本型字面量,二者的核心区别在于引号类型和内容长度限制。
核心概念
- 字符串(String):用双引号
"..."包裹的文本内容,用于表示一长串文本。 - 字符(char):用单引号
'...'包裹的单个字符,用于表示有且只有一个的字符。
核心特性/工作原理
字符串的规则——宽松:
- 必须用双引号包裹。
- 内部内容不受限制:可以写任意内容、任意长度。
- 甚至可以什么都不写(空字符串
""),也合法。 - 只有一个空格
" "同样是合法的字符串。
字符的规则——严格(两个条件必须同时满足):
- 必须用单引号包裹。
- 内部内容有且只能有一个,可以是数字、字母、中文、标点符号,但数量必须是一个。
对比/示例/注意事项
| 书写形式 | 类型判定 | 是否合法 |
|---|---|---|
" "(双引号包一个空格) | 字符串 | ✅ 合法 |
""(双引号内为空) | 字符串(空串) | ✅ 合法 |
'abc'(单引号包三个字符) | 非字符,也非任何类型 | ❌ 语法错误 |
public class ValueDemo1 {
public static void main(String[] args) {
System.out.println("黑马程序员"); // 字符串
System.out.println("尼古拉斯阿伟"); // 字符串
System.out.println('男'); // 字符(一个中文字符)
System.out.println('女'); // 字符
}
}
⚠️ 注意事项:
'abc'虽然满足了”单引号包裹”这一条件,但内部有三个字符,违反了”有且仅有一个”的约束,因此它不是字符字面量,也不是任何合法字面量,强行书写会导致编译报错。- 判断字符串还是字符,只看引号类型和内容数量,与内容本身是中文、数字还是标点无关。
📌 四、布尔与空类型(逻辑与空值)
主题内容
布尔类型和空类型是六类字面量中取值最特殊的一类,需要额外记忆其固定取值。
核心概念
- 布尔(boolean):只有两个取值——
true(正确)和false(错误),用于表示判断的结果。 - 空(null):特殊值,表示什么都没有的状态。
核心特性/工作原理
布尔类型:
- 在项目中用于分支逻辑:判断结果不同,执行的代码路径也不同。
- 典型场景:用户登录成功为
true,登录失败为false,两种情况下执行不同代码。 true和false在编辑器中会高亮显示,说明它们是 Java 的保留字。
空类型 null:
- 表示”什么都没有”。
- 不能直接打印——直接写
System.out.println(null)会编译报错。 - 若需打印,只能用字符串形式:
System.out.println("null")。 - 后续在面向对象阶段会再次深入学习。
对比/示例/注意事项
public class ValueDemo1 {
public static void main(String[] args) {
System.out.println(true); // 布尔:真
System.out.println(false); // 布尔:假
System.out.println("null"); // 必须用字符串形式打印 null
// System.out.println(null); // ❌ 直接打印 null 会报错
}
}
| 字面量 | 取值 | 是否可直接打印 |
|---|---|---|
| 布尔 | true / false | ✅ 可以 |
| 空 | null | ❌ 不可以,需转为 "null" |
⚠️ 注意事项:
null与true、false虽然都高亮显示、语义特殊,但null表示的是”空引用”状态,其使用时机和限制与布尔值完全不同,初学阶段只需记住”不能直接打印”即可。
📌 五、特殊字符字面量与制表符 \t

主题内容
在字符字面量中还包含一批特殊字符(转义字符),常见的包括 \t(制表符)、\r(回车)、\n(换行)等,其中 \t 是本节深入讲解的重点。
核心概念
- 转义字符:以反斜杠
\开头、具有特殊控制含义的字符,如\t、\r、\n。 - 制表符
\t:在打印时,将前面字符串的长度补齐到 8 或 8 的倍数,最少补 1 个空格,最多补 8 个空格。
核心特性/工作原理
制表符 \t 的正确理解(常见错误说法:缩进、对齐、大空格——这些都不准确):
\t只与前面的字符串长度有关,与后面的字符串无关。- 补齐规则:前面的长度如果是 3,则
\t补 5 个空格(3 + 5 = 8);前面的长度如果是 4,则补 4 个空格(4 + 4 = 8)。 - 若前面长度已达 8 的倍数,则补 8 个空格到下一个 8 的倍数(但最少补 1 个空格)。
核心用途: 让类似表格形式的数据在打印时纵向对齐,提升可读性。
对比/示例/注意事项
不加制表符(数据挤在一起):
System.out.println("name" + "h"); // 输出:nameh
System.out.println("Tom" + "23"); // 输出:Tom23
加制表符(数据对齐):
System.out.println("name" + "\t" + "h"); // name(4字符)+4空格+h
System.out.println("Tom" + "\t" + "23"); // Tom(3字符)+5空格+23
输出效果对比:
| 写法 | 前段长度 | \t 补空格数 | 结果 |
|---|---|---|---|
name + "\t" + h | 4 | 4 | name h |
Tom + "\t" + 23 | 3 | 5 | Tom 23 |
⚠️ 注意事项:
\t既可以用单引号(字符形式'\t')表示,也可以用双引号(字符串形式"\t")表示,二者皆可。\t补空格时只看前面的长度,不看后面的长度,这是理解对齐效果的关键。- 字符串之间用
+连接是字符串拼接操作,会把前后文本合并成一个整体后再打印。
总结
核心要点速
| 概念 | 一句话总结 |
|---|---|
| 字面量 | 数据在程序中的书写格式,即值本身 |
| 整数 | 直接书写,可正可负,无需符号 |
| 小数 | 带小数点书写,可正可负 |
| 字符串 | 双引号包裹,内容任意、可为空 |
| 字符 | 单引号包裹,有且仅有一个字符 |
'abc' | 非法写法,三个字符不能作字符字面量 |
| 布尔 | 只有 true 和 false,表示判断结果 |
null | 表示”什么都没有”,不能直接打印 |
\t | 制表符,将前段长度补齐到 8 或 8 的倍数 |
| 制表符用途 | 让表格型数据在打印时纵向对齐 |



你真棒