简述java中equals()方法和==的区别

==equals的主要区别是:

==:

==常用于比较原生类型(基本数据类型):byte,short,char,int,long,float,double,boolean,比较的是他们的值。

若用==来比较两个对象,则比较的是这两个对象的内存地址。因此,除非是同一个new 出来的对象,比较结果为true,不同对象用==比较都是false。

但是,对于拥有缓存机制的对象,例如Integer、Byte 、Short 、Long、 Character对象(目前就知道这几个对象),在其缓存范围内,是可以用==比较出正确的结果的。具体范围是:Integer、Byte,Short,Long 固定范围是:-128 到 127;Character 固定范围是 0 到 127。除了 Integer 可以通过参数改变范围外,其它的都不行。 具体可见我转发的博文理解Java Integer的缓存策略【转】

equals()方法:

在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,源码如下:

public boolean equals(Object obj) { return (this == obj); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzzxw.html