当前位置:  技术问答>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.

|
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对象是不可改变的
为了节省空间String s1 = "mm"时,"mm"形式的字符串将保存在常量池里共享
所以s2和s1将指向同意对象所以s1==s2
而String s1 = new String("mm");时"mm"将被复制。

|
两者都用new 建立时s1 == s2返回false。
原理楼上已经 说得很清楚了。呵呵~~

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位大虾,能否告知JAVA的核心思想
  • 请各位大哥告知JAVA中消息机制的有关资料,拜托!
  • 请告知几款RedHat Linux 7.0直接能认的网卡,谢谢。
  • 请问如何设置JTabel的COLUMN(列名)的字体大小?望告知
  • 兄弟我的jb5光盘不能读了,那为大侠帮忙告知一个下载地址,不胜感激!
  • 请告知jbuilder4.0 for linux的ent包哪里有下载。
  • 望告知Borland Application Server的序列号
  • 请告知winamp中:系统如何知道鼠标点击的部位为播放按钮(消息机制)?
  • Weblogic6.1多少钱?告知有分!
  • 请各位大侠告知小弟可不可以?
  • 急急急急:讨教:Sco Unixware 7 中如何查看系统资源使用状况,请告知
  • 请告知Resin1.1.6+JDK1.3+IIS下配置JIVE的详细步骤
  • 怎样用程序获得网卡地址!那位仁兄能告知
  • 请告知gcc的具体用法
  • 那个地方有jsp的书籍,请告知!谢谢!
  • 哪位大虾告知小弟:
  • 那位大侠行行好,能不能告知那里提供《linux操作系统内核实习》的完整下载?
  • linux下怎么配置jdbc 访问oracle ,知情者请告知
  • 请教ghost备份linux分区!有大大知道的请告知~谢谢~
  • 在redhat linux 7.0下面上网为什么速度那么慢?我用的是ADSL啊!!请知情人告知,感激不尽


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3