Java字面量是代码中直接写出的固定值,共六类:整型、浮点型、字符型、字符串型、布尔型和null,分别有严格格式与用途,用于初始化、传参、计算、类型推断及常量池优化。
Java的字面量,就是代码里直接写出来的“固定值”,它不是变量、不占内存地址、不可修改,编译器一看就知道它是什么类型、代表什么数据。
Java中常见的字面量共六类,每类都有明确的书写格式和用途:
100、-42、0x1F(十六进制)、0b1010(二进制)。默认是 int 类型;要表示 long,必须加 L(如 10000000000L)。3.14(默认 double)、2.718F(float 类型)、1.23e-5(科学计数法)。不加后缀就是 double,加 F/f 才是 float。'A'、'\n'(换行)、'\u4f60'(Unicode,“你”)。不能写成 'ab' 或 "a",否则编译报错。"Hello"、" "(空格)、""(空字符串)。注意:它本质是对象,会被放入字符串常量池自动复用。true 和 false。不能用 1/0 或大写的 TRUE 替代,大小写敏感且类型严格。null:唯一值,表示“引用没指向任何对象”。只能赋给引用类型(如 String s = null;),不能赋给 int、char 等基本类型。字面量不是摆设,它在开发中承担着几个关键角色:
int age = 25; 中的 25 就是整型字面量;System.out.println("OK"); 中的 "OK" 是字符串字面量;if (score >= 90) 中的 90 是比较依据;var name = "Tom";,JVM 根据 "Tom" 这个字符串字面量确定 name 是 String 类型;String a = "abc"; String b = "abc"; 中两个字面量指向同一内存地址
,提高效率。初学时几个常见误区得留心:
'a' 和 "a" 完全不同:前者是 char(2 字节),后者是 String(对象,有方法可调);null 不等于空字符串:str == null 表示还没创建对象;str.equals("") 表示对象存在但内容为空;int 范围却不加 L,比如 int x = 3000000000; 会编译失败;F 直接赋给 float 变量:float f = 3.14; 报错,必须写成 float f = 3.14F;;0 开头(如 017 表示十进制 15),但易混淆,现代开发基本不用。基本上就这些。字面量看着简单,却是 Java 类型系统和编译机制的起点——写对了,代码才稳;写错了,往往第一行就编译不过。