代码中字符串的使用对于每个程序员来说都司空见惯,大家用起来也得心应手,所以很少会花时间深入研究。但是在笔试面试中,却常常被提问,而且往往是看似熟悉的程序,却无法说出自己坚信的答案。而且今天的重点是String.inter()。今天花时间整理一下,一来自己做一个记录,二来希望帮助更多的猿类!Hahaha~
先热热身做俩道题:
Q:下列程序的输出结果:
String s1 = “abc”;
String s2 = “abc”;
System.out.println(s1 == s2);
A:true
分析一下:程序执行,常量池中生成一个字符串,并将栈中的引用指向 s1,s2 先去查询常量池中是否有已经存在,存在,则返回常量池中的引用,所以s1 = s2。
Q:下列程序的输出结果:
String s1 = new String(“abc”);
String s2 = new String(“abc”);
System.out.println(s1 == s2);
A:false,两个引用指向堆中的不同对象。
分析一下:第一步、