9. Java 中,Literals字面量有哪些?
在 Java 中,Literals(字面量) 是指固定值的源代码表示,它们可以直接赋值给基础数据类型的变量,而不需要使用 new 关键字。例如:
boolean result = true;
char capitalC = 'C';
byte b = 100;
short s = 10000;
int i = 100000;
📌 Literals 直接在代码中表示,不需要计算,例如 100、'A'、true。
1️⃣ 什么是 Literals(字面量)?
Java 支持以下几种字面量:
- 整数字面量(Integer Literals) →
123、0b1010、0x1A - 浮点数字面量(Floating-Point Literals) →
3.14、2.5e-3 - 字符字面量(Character Literals) →
'A'、'\u0041' - 字符串字面量(String Literals) →
"Hello" - 布尔字面量(Boolean Literals) →
true、false null字面量(Null Literal) →null
2️⃣ 整数字面量(Integer Literals)
整数字面量可以用 十进制(默认)、二进制、八进制或十六进制 表示:
int decimal = 100; // 十进制(默认)
int binary = 0b1010; // 二进制(0b 前缀)
int octal = 0123; // 八进制(0 前缀)
int hex = 0x1A; // 十六进制(0x 前缀)
💡 输出
100
10
83
26
✅ 从 Java 7+ 开始,可以使用 _ 作为分隔符提高可读性
int million = 1_000_000;
long creditCard = 1234_5678_9012_3456L;
3️⃣ 浮点数字面量(Floating-Point Literals)
浮点数可以用 小数表示 或 科学计数法表示:
float pi = 3.1415f; // float 需要 `f`
double e = 2.718; // 默认 double 类型
double exp = 1.2e-3; // 科学计数法(1.2 × 10⁻³)
✅ 浮点数默认是 double,如果要 float,必须加 f 或 F
float weight = 65.5f; // ✅ 正确
float error = 65.5; // ❌ 错误,默认是 double
4️⃣ 字符字面量(Character Literals)
字符字面量必须用单引号 ' 括起来,可以是: ✅ 普通字符
char letter = 'A';
char digit = '5';
char symbol = '#';
✅ Unicode 码
char unicodeA = '\u0041'; // 'A'
char chinese = '\u4F60'; // '你'
✅ 转义字符
char newline = '\n'; // 换行符
char tab = '\t'; // 制表符
char backslash = '\\'; // 反斜杠
char quote = '\''; // 单引号
5️⃣ 字符串字面量(String Literals)
字符串必须用 双引号 "" 括起来:
String message = "Hello, Java!";
✅ 字符串支持 Unicode
String chinese = "你好,世界!";
✅ 字符串可以包含转义字符
String filePath = "C:\\Users\\Admin\\Documents";
String quote = "他说:\"你好!\"";
✅ 字符串可以是多行文本(Java 13+ Text Blocks)
String multiLine = """
Line 1
Line 2
Line 3
""";
6️⃣ 布尔字面量(Boolean Literals)
布尔类型只有两个字面量:
boolean isJavaFun = true;
boolean isSkyGreen = false;
7️⃣ null 字面量(Null Literal)
null 只能用于 引用类型(对象),表示“没有值”:
String name = null;
Integer number = null;
⚠ 基元类型不能赋值为 null!
int num = null; // ❌ 错误!
8️⃣ 总结
| 类型 | 示例 | 说明 |
|---|---|---|
| 整数字面量 | 10, 0b1010, 0123, 0x1A | 可用十进制、二进制、八进制、十六进制 |
| 浮点字面量 | 3.14, 2.5e-3, 1.2f | 默认 double,float 需 f 后缀 |
| 字符字面量 | 'A', '\u0041', '\n' | 16 位 Unicode 字符 |
| 字符串字面量 | "Hello", "你好" | String 不是基元类型,但有特殊支持 |
| 布尔字面量 | true, false | 只有 true 和 false |
null 字面量 | null | 仅适用于引用类型 |
✅ 最佳实践
- 整数字面量默认是
int,除非加L变成long。 - 浮点数默认是
double,float需要f后缀。 - 字符串支持 Unicode,可用
\uXXXX方式表示。
🚀 希望这个讲解能帮你更好地理解 Java Literals(字面量)! 🎯