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(字面量)! 🎯