- jvm 中有一个constant pool
- 能够在编译期确定值的String 会放到 constant pool中
- 新建String时,会从常量池中去拿,没有会生成并放到常量池中
例子:
String a = “AA”
String b = “AA”
a == b -> true
b = “AABB”
a = a + “BB”
a == b --> false (因为b是个变量,在编译期无法确定值)
a = “AA”+“BB”
a == b --> true
例子:
String a = “AA”
String b = “AA”
a == b -> true
b = “AABB”
a = a + “BB”
a == b --> false (因为b是个变量,在编译期无法确定值)
a = “AA”+“BB”
a == b --> true