Java中创建对象的问题?

String A = new String("nihao");
String B = A;
String C = A+B;
以上代码,将创建几个对象?求详解。。。
我该相信你们哪个啊 都不一样。。。

您好,提问者:
咱们都知道String是引用类型,而且不能被继承。
那么引用类型就是在内存中采用引用地址的形式指向存储在内存中的字符串。
因为String确实是个类,所以new了就是创建了一个对象。
String B是没有创建对象的,在常量池中也没有对象,只是引用了A。
而C是一个对象,所以创建了两个对象!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-28
java中的String是比较特殊的,非面向对象的,所以应该是8个

String A = new String("nihao"); 1个对象

String B = A; 调用拷贝构造函数,会对传入的参数A生成一个临时对象 2个对象

String C = A+B; A,B作为重载操作符的参数传入后,会生成两个临时变量,同时返回值会生成一个临时变量,再赋值给C 调用拷贝构造函数还会生成一个临时变量,再上C本身,这里就有5个对象

所以总共应该是8个对象

相信下面的专家,我推荐他的~
第2个回答  2013-08-28
String A = new String("nihao"); 创建了2个String Object
一个是你作为参数的"nihao",一个是你自己创建的 newString("nihao");
而 String B = A; 引用了 newString("nihao"); 对象 没有创建

String C = A+B; 创建了1 个新的 String Object;
所以一共应该是3个
第3个回答  2013-08-28
首先,第一句话, “nihao”,在字符串常量池中,因为new String,所以创建了一个对象
String b=a,b获得了a的引用,此处没有创建对象
a+b肯定是另外一个了,,
所以应该是2个对象,
第4个回答  2013-08-28
3个对象,a b c
相似回答