黑马程序员技术交流社区

标题: 一共创建了几个对象?? [打印本页]

作者: 计算机小菜鸟    时间: 2014-11-13 20:11
标题: 一共创建了几个对象??
String s1 = new String("hello") ;
String s2 = new String("hello") ;
以上代码创建了几个对象?
作者: cbb    时间: 2014-11-13 20:20
2个吧…………
作者: qq272936993    时间: 2014-11-13 20:22
2句话都算的话,应该是4个吧?
作者: 默默丶    时间: 2014-11-13 20:35
2个 等式前面是String类型的s1引用指向这个地址  而这个地址是new出来的  
so就是说new了才是新建了对象 没new就实例化对象咯
作者: 计算机小菜鸟    时间: 2014-11-13 21:13
答案是三个啊!!!!!!
作者: Sxxjava    时间: 2014-11-13 22:04
肯定是2个了
作者: 计算机小菜鸟    时间: 2014-11-13 22:08
Sxxjava 发表于 2014-11-13 22:04
肯定是2个了

答案是三个!!!
作者: 计算机小菜鸟    时间: 2014-11-13 22:09
qq272936993 发表于 2014-11-13 20:22
2句话都算的话,应该是4个吧?

是三个!!
作者: 杨佳名    时间: 2014-11-13 22:11
计算机小菜鸟 发表于 2014-11-13 21:13
答案是三个啊!!!!!!

字符串"abc"是一个对象,存储在字符串常量池中
每一个new ..()又是一个对象储存在堆中,而对象内容都是指向了常量池中的"abc",
所以是三个
作者: 吕静然    时间: 2014-11-13 22:22
3个,new出来2个,字符串池里有一个abc.
作者: DamonZh    时间: 2014-11-13 22:22
三个吧,第一次new的时候,会拿hello到字符串常量池中去找,如果没找到就创建一个。而new操作会在堆中创建一个,所以一共三个
作者: dong53821713    时间: 2014-11-14 09:11
3个,常量池1个,堆空间2个
作者: 时间都去哪了    时间: 2014-11-15 22:12
三个,常量池有一个
作者: zouzouzou    时间: 2015-5-28 13:05
三个!,第一次new的时候,会拿hello到字符串常量池中去找,如果没找到就创建一个。而new操作会在堆中创建一个,所以一共三个,总结,常量池一个,堆内存2个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2