9. Java 中,Literals字面量有哪些?

83 阅读3分钟

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 支持以下几种字面量

  1. 整数字面量(Integer Literals)1230b10100x1A
  2. 浮点数字面量(Floating-Point Literals)3.142.5e-3
  3. 字符字面量(Character Literals)'A''\u0041'
  4. 字符串字面量(String Literals)"Hello"
  5. 布尔字面量(Boolean Literals)truefalse
  6. 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,必须加 fF

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默认 doublefloatf 后缀
字符字面量'A', '\u0041', '\n'16 位 Unicode 字符
字符串字面量"Hello", "你好"String 不是基元类型,但有特殊支持
布尔字面量true, false只有 truefalse
null 字面量null仅适用于引用类型

最佳实践

  • 整数字面量默认是 int,除非加 L 变成 long
  • 浮点数默认是 doublefloat 需要 f 后缀
  • 字符串支持 Unicode,可用 \uXXXX 方式表示

🚀 希望这个讲解能帮你更好地理解 Java Literals(字面量)! 🎯