== 号
==号比较的是栈中的数据
==可以用于基本数据类型和引用类型
对于基本数据类型,数据存储在栈中,因此==判断的是值是否相同
对于引用数据类型,栈中存储的是对象在堆中的引用地址,因此==比较的是对象在栈中保存的引用(地址)是否相同
equal方法
equals()是Object类的方法 ,object类是所有类的基类,所以每个类都会继承equals()方法
equals只能用于引用数据类型
Object类中的equals方法和==一样都是比较两个对象的引用(内存地址)是否相同,但在String,Integer,Date在这些类当中重写了equals方法,不再是比较对象在堆内存中的存放地址,而是比较它们指向的实体(内容)是否相同
Integer a1 = new Integer(200);
Integer a2 = new Integer(200);
System.out.println(a1.equals(a2));//equals比较的是值,都是200,结果是true
System.out.println(a1==a2);//==比较的是地址,因为是2个对象,所以地址不同,是false