String 常量池:
String s1 = "abc";String s2 = new String("abc");// falseSystem.out.println(s1 == s2);
字符串拼接对比:
String s1 = "abc";String s2 = "ab";// 变量拼接,自动转换成 new StringBuilder().append(s2).append("c").toString()String s3 = s2 + "c";// falseSystem.out.println(s1 == s3);// 字面量拼接String s4 = "ab" + "c";// trueSystem.out.println(s1 == s4);
Integer 常量池:-128 ~ 127
- Integer.valueOf()
- Integer.intValue() ```java Integer i1 = 127; Integer i2 = 127;
// true System.out.println(i1 == i2);
Integer 超过 -128~127 这个范围后,字节码会自动使用 Integer.valueOf():<br />而且:**int 和 Integer 比较**,会自动调用 Integer.intValue() 返回 int 值:```java// Integer i1 = Integer.valueOf(128);Integer i1 = 128;Integer i2 = 128;int i3 = 128;// falseSystem.out.println(i1 == i2);// trueSystem.out.println(i1 == i3);// trueSystem.out.println(i1 == i3);
new Integer 则肯定是不相等的,
