有一个类Echo,在main函数中实例化一个对象~
Echo e1=new Echo();
Echo e2=e1;

Echo e1=new Echo();
 Echo e2=new Echo();有什么区别……!(望详细)

解决方案 »

  1.   

    Echo e1=new Echo(); 
    Echo e2=e1; 
    e1和e2的内存地址相等.
    Echo e1=new Echo(); 
    Echo e2=new Echo();
    e1和e2的内存地址不等;
      

  2.   

    问题追加:
    谈下在这段程序中不同方法的结果:(望详细¥¥¥)
    public class Echo {
    int count=0;
    void hello(){
    System.out.println("helloooooo");
    }
    public static void main(String[] args){
    Echo e1=new Echo();
    Echo e2=new Echo();//Echo e2=e1; 

    int x=0;
    while(x<4){
    e1.hello();
    e1.count+=+1;
    if(x==3){
    e2.count+=1;
    }if(x>0){
    e2.count=e2.count+e1.count;
    System.out.println("^"+e2.count);
    }
    x=x+1;
    }
    System.out.println(e2.count);
    }

    }
      

  3.   

    调用 if(e1 == e2)
      System.out.println("e1 和 e2 的引用相同");
    else{
      System.out.println("e1 和 e2 的引用不同");
      }
    看看结果,两种定义方法得到的结果是不同的。
    第一种方法两个对象的引用是指向同一个对象的,也就是真正的对象有一个,指向他的引用由两个;
    第二种方法两个对象的引用时指向两个对象的,也就是有两个的对象,对象的内容相同,存储的地址不同。两个引用分别指向两个对象。
      

  4.   

    第一种情况:e1和e2其实是指向同一个对象,打个比方就是“沪”和“上海”都是指的同一个地方,不同叫法而已第二种情况:e1和e2指向了不同的对象,相当于一个“上海”一个“杭州”,叫法不同,实际所指的地方也不同