前言
在Java编程中,字面量(Literals)是指直接写在代码中的固定值。它们是构成程序的基本元素之一,代表了某种类型的数据,并且不需要进一步计算或转换即可直接使用。
一、整型字面量(Integer Literals)
整型字面量可以表示为四种不同的进制:十进制、八进制、十六进制和二进制。
-
十进制:最常用的格式,无前缀。
int decimal = 100;
-
八进制:以
0
开头。int octal = 0144; // 等于十进制的100
-
十六进制:以
0x
或0X
开头。int hex = 0x64; // 等于十进制的100
-
二进制:从Java 7开始支持,以
0b
或0B
开头。int binary = 0b1100100; // 等于十进制的100
此外,您可以通过添加后缀L
或l
来指定长整型(long
):
long longNum = 100L;
注意:尽管可以使用小写的l
作为后缀,但推荐使用大写的L
以避免与数字1
混淆。
二、浮点型字面量(Floating-Point Literals)
浮点型字面量默认为double
类型,可以通过添加后缀f
或F
来指定为float
类型。
-
双精度浮点数(Double):
double d = 123.456;
-
单精度浮点数(Float):
float f = 123.456f;
Java还支持科学计数法:
double e = 1.23e+2; // 等于123.0
三、字符和字符串字面量(Character and String Literals)
-
字符字面量:用单引号括起来的一个字符。
char c = 'A';
Java也支持Unicode转义序列作为字符字面量的一部分:
char unicodeChar = '\u0041'; // 等于'A'
-
字符串字面量:用双引号括起来的一系列字符。
String s = "Hello, World!";
字符串字面量支持转义字符,如
\n
(换行)、\t
(制表符)等。
四、布尔字面量(Boolean Literals)
布尔字面量只有两个值:true
和 false
。
boolean flag = true;
boolean isActive = false;
五、空字面量(Null Literal)
null
是一个特殊的字面量,用于表示对象引用不指向任何实际的对象。
String str = null;
六、高级用法与注意事项
-
自动装箱/拆箱:Java支持基本数据类型与对应的包装类之间的自动转换(例如,
int
和Integer
),这使得处理字面量更加灵活。Integer integerObject = 100; // 自动装箱 int primitiveInt = integerObject; // 自动拆箱
-
数字分隔符:从Java 7开始,您可以使用下划线
_
作为数字分隔符,以提高可读性。int oneMillion = 1_000_000;
-
类型推断:Java 10引入了局部变量类型推断,允许您使用
var
关键字简化声明过程。var number = 100; // 推断为int类型
-
不可变性和安全性:某些字面量(如字符串字面量)在内存中是不可变的,这意味着一旦创建就不能更改其值。这种特性有助于提高安全性和性能。
结语
Java中的字面量提供了简洁而直观的方式来表示不同类型的数据。无论是简单的整数、浮点数,还是复杂的字符串和布尔值,理解如何正确使用这些字面量对于编写高效且易读的代码至关重要。