1. == 与 equals 的区别:
一( == ):
(1): == 号是比较运算符,当 == 号判断基本数据类型时如(int,double,short)等时判断的是值是否相等。
public class equals {
public static void main(String[] args) {
int a = 10;
int b = 10;
short c = 10;
int d = 4;
System.out.println(a == b);//基本数据类型都为 int 且值都相同
System.out.println(a == c);//基本数据类型不相同 但值相同
System.out.println(a == d);//基本数据类型相同 但值不相同
}
}
(2):当 == 号判断引用类型时判断的是地址,即是否是同一个对象
public class equals {
public static void main(String[] args) {
Object o1 = new Object();//新对象 o1
Object o2 = new Object();//新对象 o2
System.out.println(o1 == o2);
A a = new A();//a对象
A b = a;//b对象
C c = new C();//c对象
A d = c;
System.out.println(a == b);//a 与 b 的编译类型都为A
System.out.println(c == a);//c与a的编译类型不相同
}
}
class A{
}
class C extends A{ // C 去继承 A
}
二(equals):
1:equals 不是运算符而是一个方法,只能判断引用类型,默认判断的是对象的地址是否相同,但是往往在子类中会重写这个方法用于判断值是否相同。
public class equals {
public static void main(String[] args) {
A a = new A();
C c = new C();
System.out.println("a".equals("a"));
System.out.println(c.equals(a));
}
}
class A{
}
class C extends A{ // C 去继承 A
}



