equals 和 ==

基本类型,基本类型的封装类,对象变量    

==>对象变量,"=="和"equal"
    String s1="test s1 and s2"; 
    String s2="test s1 and s2"; 
    Boolean result=(s1==s2);     (false)
==>对象变量存储的是对象在内存中的内存地址。所以用“==”时,结果为false。

==>所以“==”用来比较两个变量的值是否相等,而不是变量引用的对象是否相等 

    Boolean r1=st1.equals(st2); 

    Boolean r2=(st1+st2).equals(st3); 
    Boolean r3=st3.equals(st4); 
==>equal用于比较两个对象是否相同。 
所以: 
“==”比较的是值【变量(栈)内存中存放的对象的(堆)内存地址】 比较引用.
equal用于比较两个对象的值是否相同
Object类中的equals方法和“==”是一样的,没有区别,而String类,Integer类等等一些类,是重写了equals方法,才使得equals和“==不同”,所以,当自己创建类时,自动继承了Object的equals方法,要想实现不同的等于比较,必须重写equals方法。

posted @ 2016-05-25 16:20  sunshinelym  阅读(126)  评论(0编辑  收藏  举报