“==”和equals()的区别
== 作比较
基本类型:比较的是基本类型变量的值是否相等
如:int、byte等类型;
引用类型:比较的引用类型的地址值是否相等
如:数组,String类型等。
equals(Object obj):
作用:用来比较两个对象是否相等
不重写时:比较的是两个对象的地址值是否相等
所以一般我们想要比较两个引用类型的值内容时需要在类中重写equals()方法,在
方法中定义比较的规则,按重写规则进行比较,一般是比较该对象类型的所有的成员变量
的值是否相等;
而像有些特殊的类型,在JDK中的定义的特殊类会自己重写equals()方法,如:String类;
就是在类中自己重写了equals方法:
在方法中:1、先讲字符串转换成字符数组;
2、然后比较数组的长度;
3、最后按索引逐个比较。
在这些特殊类型中就可以直接调用equals()方法比较两个变量的值内容是否相等;
如:s1.equals(s2); |
|