基本类型,基本类型的封装类,对象变量
==>对象变量,"=="和"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方法。