== 与 equals的区别
一、基本数据类型与引用数据类型
1、基本数据类型
java语言中有8种基本数据类型,分类四大类型:
-
逻辑类型:boolean
-
整数类型:byte、short、int、long
-
浮点类型 :float、double
-
字符类型:char
2、引用数据类型
除了8中基本数据类型以外都是引用数据类型
引用数据类型分3种:类,接口,数组
二、具体区别
1、“==” 运算符:如果比较的是基本数据类型,则比较的是存储的值;如果是引用数据类型,则比较的是地址是否相同
2、equals方法:equals是Object类的方法,比较的是对象的地址是否相同。equals不能用来比较基本数据类型,因为equals是Object类中的方法,所有类都继承Object类。
三、equals的重写
String类与包装类(Byte、Short、Integer、Long、Float、Double、Character、Boolean)都重写了equals方法
拿String类举例来说:首先先比较两者地址是否相同,再比较类型是否相同,再比较长度,都相同的情况下进行逐字符比较,目的是在地址不相同的情况下比较字符串是否相同。