public static void main(String[] args) {
/**
* 当程序第一次使用某个字符串直接量时,java会使用常量池来缓存该字符串的直接量
* 如果程序后面部分需要用到该字符串直接量时,java会直接使用常量池中的字符串直接量
*
* 由于String是一个典型的不可变类,因此String对象创建出来就不可能改变,因此无需担心共享String对象会导致混乱
*
* 常量池constant pool:在编译时期被确定,并被保存在已编译的.class文件中的一些数据,它包括关于类、方法、接口中的常量,也包括字符串常量
*/
String a = "hello";
String b = "hello";
String c = "he" + "llo";
System.out.println("a == b ? " + (a == b));
System.out.println("a == c ? " + (a == c));
}
--------------------------------
a == b ? true
a == c ? true