==和equals的区别

Posted 离愁i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了==和equals的区别相关的知识,希望对你有一定的参考价值。

1.如果是基本数据类型:也就是原始数据类型。byte,short,int,long,float,double,boolean。他们之间的比较是使用(==)比较,比较的是他们的值。基本数据类型是值类型,都是存在栈中的。

2.如果是引用数据类型:当他们使用==进行比较的是他们在内存中存放地址,所以除非是同一个new出来的对象,他们比较结果为true,否则是false,java中所有的类都是继承Object这个基类的,在Object中定义了一个equals方法,这个方法的初始行为是比较对象的内存地址,如果看源码,Object的equals是用==判断相等的,但是在一些类库存中的这个方法被覆盖掉了,如string,integer,Date这些类中体.有他们自己的实现,而不是比较类在队内存的地址了。

以上是关于==和equals的区别的主要内容,如果未能解决你的问题,请参考以下文章

equals()和==到底有啥区别啊?

equals和==的区别

[转]Java中==和equals的区别,equals和hashCode的区别

equals和==的区别是啥?

Java里的equals和==的区别是否equals是比较内容,==是比较地址的?

==和equals()的区别