常见面试题十三--equals和==的区别有哪些?
从本质上来说,这两者的主要区别在于equals是一个函数,而==是一个操作符。
从使用层面来说,首先,==作为操作符主要有两个方面的作用,
第一,在使用==比较基本数据类型时,如果==两端的值相等则返回真,不等则返回假。
第二,在使用双等号比较引用数据类型时,如果==两端的值指向的是堆内存当中的同一个对象,则返回真,否则返回假。
其次,equals函数是定义在Object类当中的,由于这个类是所有类的父类,所有在Java当中所有的类都拥有equals函数。equals函数在Object当中实现的作用其实和==相同。但是在实际的开发过程当中通常需要对equals函数进行复写,复写的目标在于使用equals比较两个对象的内容是否相等。所谓的内容相等就是指两个对象类型相同,并且所有的成员变量的值也相等。