# 直接量
[TOC]
## 直接量
直接量是指在程序中直接通过源代码的方式指定的值,有时也成为字面量。
>[info] 在编译的时候,JVM 就定义到常量池中。
比如`int a = 5;`这里的 5 就是一个直接量。
在 Java 中可以定义的直接量包含:基本数据类型、字符串类型、null。
## 关于 String 类的特殊说明
String 类是一个不可改变类,意思就是在String 对象被创建出来后就不能被改变了。当程序第一次使用某个字符串直接量时,Java 会使用常量池来缓存该字符串直接量。如果后面程序用到了这个字符串直接量,Java 会直接引用常量池字符串。
>[info] 常量池指的是在编译器就被确定,并被保存在已编译的.class文件中的一些数据中。它包括类、接口、方法中的常量,也包括字符串直接量。
在常量池中不会存在两个一样的字符串字面量值。