当前位置: 技术问答>java相关
请告知一下String s1 = "mm"; 与String s1 = new String("mm");的区别!
来源: 互联网 发布时间:2015-04-28
本文导语: 为何String s1 = "mm",s2 = "mm"; 此时,s1 == s2返回true;,而两者都用new 建立时s1 == s2返回true. | String s1='mm',s2='mm';该字符串对象是在literal pool里,就是'mm'是个常量,类似于int x=3,y=3; String s1=new ...
为何String s1 = "mm",s2 = "mm";
此时,s1 == s2返回true;,而两者都用new 建立时s1 == s2返回true.
此时,s1 == s2返回true;,而两者都用new 建立时s1 == s2返回true.
|
String s1='mm',s2='mm';该字符串对象是在literal pool里,就是'mm'是个常量,类似于int x=3,y=3;
String s1=new String('mm');String s2=new String('mm')是在heap种分配内存,s1和s2指向不同的地址。
String s1=new String('mm');String s2=new String('mm')是在heap种分配内存,s1和s2指向不同的地址。
|
由于String对象是不可改变的
为了节省空间String s1 = "mm"时,"mm"形式的字符串将保存在常量池里共享
所以s2和s1将指向同意对象所以s1==s2
而String s1 = new String("mm");时"mm"将被复制。
|
两者都用new 建立时s1 == s2返回false。
原理楼上已经 说得很清楚了。呵呵~~
原理楼上已经 说得很清楚了。呵呵~~
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。