1、当一个表达式两边都是字面量,则编译过程中就会进行计算,并将结果生成在表达式的位置,以节省运算效率;
ps:jvm认为只有是字面量时,才会对比常量池中内容;而如果是new的新对象为不同对象。
例1:
1 public static void main(String[] args){ 2 String str = "123str"; 3 String str1 = "123"+"str"; 4 String str2 = new String("123str"); 5 6 System.out.println(str == str1); //true 7 System.out.println(str == str2); //false 8 }