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

请教:String s1 = new String("abc");和String s2 = "abc"有什么不同

2012-03-15 
请问:String s1 new String(abc)和String s2 abc有什么不同?请问:String s1 new String(abc

请问:String s1 = new String("abc");和String s2 = "abc";有什么不同?
请问:String s1 = new String("abc");和String s2 = "abc";有什么不同?

主要是内存中的堆中、栈中的情况。

非常谢谢大家啊。

[解决办法]
好眼熟的问题,好像前两天刚见过一摸一样的…………
[解决办法]
没有什莫不同
都是String的对象类型
都是被放在堆内存中,而不是栈内存
[解决办法]
搞什么啊,为什么专注在这种问题上啊?

[解决办法]
String s1 = new String("abc");是在堆中生成;
String s2 = "abc";是直接在字符串池中查找得到;
两者不一样
[解决办法]
http://hi.baidu.com/whofly/blog/item/93792adf123a251548540300.html
[解决办法]
堆与栈的区别
栈,用来存取基本类型数据和一些对象的引用。
堆,用来存取new出来的对象或数组。
两个表达式都从栈中申请了部分空间,但第一个要从堆中申请空间,而第二个有可能申请也有可能不申请。这里涉及到了对象缓存池的概念,如果"abc"已经在池子中了,那么s2就直接应用到它了,而无需从堆中申请空间了。
[解决办法]

探讨
String s1 = new String("abc");是在堆中生成;
String s2 = "abc";是直接在字符串池中查找得到;
两者不一样

热点排行
Bad Request.