java创建对象问题(第一个回答就给分)
请问大虾: 
 MyClass   c1,c2,c3; 
 c1   =   new   MyClass(); 
 c3   =   new   MyClass(); 
 以上代码一共创建多少对象?     
 不知道如何用代码去判断?hasCode()应该可以吧?   我觉得答案是3   正确吗?
------解决方案--------------------应该是两个吧。 
 如果你把MyClass类的Class对象也算上,那我还要说把加载那个类的ClassLoader对象也算上呢。嘿嘿。
------解决方案--------------------怎么可能是 5 个,也不是 3 个。   
 是两个,第一行只是声明了三个变量,实质就是三个变量指针,也就是说这三个变量只能指针 MyClass 的对象,目录,这三个变量暂时是
空指针,未指向任何对象。而第二、三行,则通过 new 创建了两个对,让 c1、c2 不是空指针了。   
 第一行代码,在内存分配情况如下: 
 +------+ 
 | c1 | 
 +------+ 
 | c2 | 
 +------+ 
 | c3 | 
 +------+   
 第二、三行执行后,内存分布就变成下面这样的了: 
 +------+    +---------+ 
 | c1 | ----->  | MyClass | 
 +------+    +---------+ 
 | c2 | 
 +------+    +---------+ 
 | c3 | ----->  | MyClass | 
 +------+    +---------+
------解决方案--------------------。。。。。。。。。。。。。。 
 ls连图都用上了。。。。。。。。。。。。。 
 只有new MyClass();才是对象 
 答案是2个
------解决方案--------------------终于有人明白我为什么说是5个的了:)                
------解决方案--------------------建立了3个引用,new了2个内存空间!我感觉是这样的,我也刚学。
------解决方案--------------------是3个引用 2个对象. 
 图很说明问题. 
 在这里补充一下,三个引用是局部变量,所以存放在java数据区的栈区中, 
 对象放在java数据区中的堆区中.
------解决方案--------------------String s = new String( "xyz ");创建了几个对象
------解决方案--------------------比较基础,不过看过《Think in Java》的都知道是两个
------解决方案--------------------引用是用来引用Java对象的。   
 编译器的设计者有可能用面向对象的方式实现引用,但那完全是八竿子打不着的另一回事。 
 编译器的设计者还完全有可能用面向对象的方式实现赋值运算符呢,难道也算对象?
------解决方案--------------------3个引用对象,两个实例对象,一共5个