==: 运算符, 基本数据类型比较的是值,引用数据类型比较的是地址值。
equals:方法只有引用数据类型可以调用,它是Object类的方法,默认是和==一样比较地址值的,但是一般都是重写这个方法,用来比较两个引用数据是否相等。
比如: String a = new String("abc"); String b = new String("abc"); 这个时候a != b。 但是a.equals(b)的结果却是true,就是因为String类重写Object类的equals()方法。
但是如果是这样: String a = "abc"; String b = "abc"; 这个时候a==b,和a.equals(b)的结果都是true。这个就涉及到字符串常量池的问题了。此时的a和b的值都是从常量池里面获取的,所以他们的地址也就相等了。