==与equal的不解之缘之美

一、比较对象为基本数据类型的时候
比较两个基本数据类型是否相等用==,因为只有继承了object类才会有equals方法。

注意:string是引用类型

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

总之:==一般用于基本类型比较值,equal用于引用类型比较地址只是string等重写了这个方法的例外(java和c#一模一样)

上一篇:Shell脚本快速入门


下一篇:【PAT A1060】Are They Equal