黑马程序员技术交流社区
标题:
String s1="a"和new String(“a”)的区别:
[打印本页]
作者:
你的昵称
时间:
2016-7-10 10:59
标题:
String s1="a"和new String(“a”)的区别:
1.String s1="a";
2.String s1=new String(“a”);
先说常量池的概念:值在编译期间,被保存的一些字节码和数据,比如字符串常量!
先说一下1;
举个例子:
String s1="a";
String s2="a";
很明显s1==s2,它们指向常量池的同一个地址,也就是说s2复用了s1的字符 a!
再来说2;
同样是举例子:
String s1=new String(“a”);
String s2=new String(“a”);
这个时候s1 != s2;
因为==是指是否为同一个对象(在常量池内的地址是否一样)!
很明显有个new ,意思是在常量池另外新建一个地址;
所以它们的常量池内的地址识别不一样的!
作者:
呆呆的小呆
时间:
2016-7-10 11:00
赞赞赞赞赞
作者:
664941114
时间:
2016-7-10 11:22
正解,之前也对这有疑问,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2