A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王舜民 于 2012-8-23 06:11 编辑

String s = new String("xyz");创建几个对象的问题。
网上答案众说纷纭,又有的互相矛盾,比如说xx宝典,看完更晕了。
有谁能给我讲一下呢?所谓答案是:两个(一个是“xyz”,一个是指向“xyz”的引用对象s)
感觉就是生搬硬套的。如果面试问道就不懂了,只会强行记着这个答案

感觉还是二楼哥们比较靠谱

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 赞一个!

查看全部评分

10 个回复

倒序浏览
我也不是很懂  在网上看了一个帖子   希望对楼主有所帮助  这个问题没有标准答案的   http://rednaxelafx.iteye.com/blog/774673
回复 使用道具 举报
本帖最后由 赵俊杰 于 2012-8-22 08:14 编辑

个人感觉,是两个:
String s="XYZ",创建了一个对象。
String s=new String("XYZ"),创建了两个对象;

回复 使用道具 举报
最好的办法就是看老毕的视频,老师讲过这个例子。多看两遍就理解了
回复 使用道具 举报
java中有个Spring Pool。就是所谓的字符串池。

创建字符串对象时,如果使用 String str = "hello"; 这种方式创建。程序就会先去Spring Pool中寻找有没有“hello”这个字符串,如果有就将str指向Spring Pool中的“hello”这个字符串。如果没有,程序就会先在Spring Pool中创建hello这个字符串,然后再将str指向它。

如果使用 String str = new String("hello"); 这种方式创建字符串对象。程序会在堆中创建一个字符串对象hello,然后将str指向堆中的这个字符串对象。在这之后,程序会在Spring Pool中寻找有没有hello这个字符串,如果没有就创建一个,如果有,就什么都不做。

点评

Spring Pool? Or String Pool?  发表于 2012-8-22 11:12

评分

参与人数 1技术分 +1 收起 理由
张立江 + 1 回答的不错,提到了字符串池!.

查看全部评分

回复 使用道具 举报
楼上说得很好,学习了
回复 使用道具 举报
李炜 初级黑马 2012-8-22 10:43:09
7#
http://zhidao.baidu.com/question/271760127.html刚刚在查其他资料时碰巧看到相关的解答,楼主可以参考下
回复 使用道具 举报
额,居然把单词写错了。{:soso_e127:},{:soso_e117:}{:soso_e106:}。是String Pool
回复 使用道具 举报
黑马_许芸 发表于 2012-8-22 08:11
java中有个Spring Pool。就是所谓的字符串池。

创建字符串对象时,如果使用 String str = "hello"; 这种方 ...

谢谢美女!
回复 使用道具 举报
黑马振鹏 发表于 2012-8-22 08:05
最好的办法就是看老毕的视频,老师讲过这个例子。多看两遍就理解了

请问在哪边的。。。
回复 使用道具 举报
王舜民 发表于 2012-8-22 21:43
请问在哪边的。。。

13天 第一个视频
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马