一、比较对象为基本数据类型的时候
比较两个基本数据类型是否相等用==,因为只有继承了object类才会有equals方法。
注意:string是引用类型
二、比较对象为引用数据类型
euqals和==本质上都是比较比较的是两个对象的引用(内存地址)是否相同。equals()是Object类的方法 ,object类是所有类的基类,所以每个类都会继承equals()方法。
但在String,Integer,Date在这些类当中重写了equals方法,而不再是比较对象在堆内存中的存放地址了,而是比较它们指向的实体(内容)是否相同。c#里面可以通过查看string定义得知,java里面可以直接查看string的源代码,可以看到重写的equal方法。
总之:==一般用于基本类型比较值,equal用于引用类型比较地址只是string等重写了这个方法的例外(java和c#一模一样)