相遇'不要钱'

导航

"=="与equals()的区别

操作符==与对象的equals()方法的比较:
                   操作符==用来比较两个操作元是否相等,操作元既可以是基本数据类型也可以是引用数据类型;
                   equals()方法是java.lang.Object类中定义的方法,用来比较两个对象是否相等;

                  ==比较基本数据类型,直接比较值是否相等;
                  ==比较引用类型,要求两个引用变量都引用同一个对象,结果是true,否则false;
                  Integer n=new Integer(1);
                  Integer m=new Integer(1);
                  Integer k=n;
                  System.out.println(n==m);//false
                  System.out.println(n.equals(m));//true
                System.out.println(n==k);//true
                 虽然==可以比较引用类;但并不是任意的两个引用类型都可以拿来比较:
                   1.和null比较是可以的;
                   2.如果是类类型的引用变量,要求双方的类型相同或有继承关系;
                   Dog dog=new Dog();
                   Creature creature=dog;
                   Cat cat=new Cat();
                   Animal animal=cat;
                   System.out.println(dog==animal);//false;
                   System.out.println(cat==animal);//true;
                
                  Dog dog=new Dog();
                  Cat cat=new Cat();
                  System.out.println(cat==dog);//编译出错

                  public boolen isBoolean(Object obj)
                    {
                        if(this==obj)
                           {return true;}
                           else{return false;}
                    }//当参数obj引用对象和当前对象为同一个对象,就返回true,否则返回false;
                 
                    equals()方法:
                     判断字符串是否为空时,不用equals()方法,会报空指针;
                     一个类中都可以覆盖其先祖Object类的方法equals()方法,在没有覆盖之前都是调用的equals()方法,
                    其比较效果和==一样;

                  Integer n=new Integer(1);
                  Integer m=new Integer(1);
                  Integer k=n;
                  System.out.println(n==m);//false
                  System.out.println(n.equals(m));//true
                System.out.println(n==k);//true


String与 ==,equals()的比较:
                   
            String是一个类,所以String str这是一个引用类型得到变量;
            String有两重情况:其原理是不一样的:
            1.String str="abc";//字面值(直接值)
            2.String str=new String("abc");//当做普通的类类型
               
             String str1="abc";
             String str2="abc";
              System.out.println(str1==str2);//true
              System.out.println(str1.equals(str2));//true

posted on 2014-05-06 19:11  相遇'不要钱'  阅读(230)  评论(0)    收藏  举报