首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

问一个概念性的有关问题

2011-12-02 
问一个概念性的问题?请问snewString( Hello )和s Hello 有什么区别~~[解决办法]s Hello 表示H

问一个概念性的问题?
请问s=new   String( "Hello ");和s= "Hello ";有什么区别~~

[解决办法]
s= "Hello ";表示Hello是一个字符串常量池中的对象而不是在堆中,如果有s1= "Hello ";的话,s==s1会返回true。

s=new String( "Hello ");相当于先在字符串常量池中生成一个字符串对象Hello(如果目前常量池中不存在该对象的话),然后在heap中生成一个对象(new String操作),该对象的内容就是在常量池中生成的字符串对象。即s=new String( "Hello ");相当于s0= "Hello ";s=new String(s0);如果还有s1=new String( "Hello ");那么s==s1返回false,而s.equals(s1)返回true。

热点排行