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

© 我想努力半年 中级黑马   /  2015-4-22 00:31  /  404 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

帮助大家复习下,有个问题是这样的:String s=new String("abc");创建了几个对象?

A、创建了两个 一个是“abc” 一个是指向“abc”对象的 S 对象。

B、只创建了一个字符串对象。


8 个回复

倒序浏览
答案选A,具体原理可以百度一下。这是很古老的问题了。
回复 使用道具 举报
是A吧,嘿嘿
回复 使用道具 举报
我只是看看,不说话。
回复 使用道具 举报
创建了 一个对象,另外一个是引用,不是对象
回复 使用道具 举报
不管内存中有没有abc这个对象,都创建一个abc对象。然后创建一个变量s引用它。所以是两个。
回复 使用道具 举报
创意哦!楼主高人啊 谢
回复 使用道具 举报
本帖最后由 李成强 于 2015-4-22 15:44 编辑

两个对象,一个是“abc”,另一个是new String("abc"),  且"abc"  != new String("abc"),且String s 中的s只是一个String类型的变量,它不是对象,这个s变量指向了new String("abc")这个对象还有就是"abc"是一个常量,有可能是之前就存在了哦,这样的话,new String("abc")就是只创建了一个对象
回复 使用道具 举报
肯定是两个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马