新人现时没有可用分,以后给class a{
   private X abc=null;
   ...
   // I call m(abc) in main
   private void m(X a){
      // a==abc is true
      a = new Y();
      // a==abc is false, why a==abc equals false? I am confused.Pleae help
   }}

解决方案 »

  1.   


    class a{
       private X abc=null;
       ...
       // I call m(abc) in main
       private void m(X a){
          System.out.println(a==abc);// a==abc is true,这里a==abc是true
          a = new Y();
          System.out.println(a==abc);// a==abc is false,为什么这里a==abc是false?
       }}
      

  2.   

    public class WW{
    private static String a;
    private static String d;
    public static void main(String[] args)
    {
    a=new String("hi");
    d=new String("hi");
    System.out.println(a==d);
    System.out.println(a.equals(d));
    }
    }
    好好比较比较“==”和“equals”,前者比较不是对象内容是比较存放数据的地址,后者才是比较对象内容