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