public static void main(String[] args){
String s1 = "a";
String s2 = "b";
String s3 = "a" + "b";//编译期优化为”ab“,常量池没有,入池
String s4 = s1 + s2;//new String(”ab“)堆中的对象
String s5 = "ab";//常量池中已有
String s6 = s4.intern();//池中已有,直接返回常量池中的
//问
System.out.println(s3 == s4);//false
System.out.println(s3 == s5);//ture
System.out.println(s3 == s6);//ture
String x2 = new String("c") + new String("d");//堆
String x1 = "cd";//常量池
x2.intern();//入池失败
//问,如果调换了位置呢,如果是jdk1.6呢
System.out.println(x1 == x2);//false
}
相关文章
- 09-22Android面试题之android部分
- 09-22iOS面试题整理---实现weak后,为什么对象释放后会自动为nil
- 09-22面试题_默认传参list
- 09-22面试题 08.04. 幂集
- 09-22上海 炉石面试题及解析
- 09-222020年,kafka面试题总结。
- 09-22树模型常见面试题(以XGBoost为主)
- 09-22珍藏版 | 20道XGBoost面试题
- 09-2296道前端面试题,总结到位
- 09-2296道前端面试题,干货满满!