==和equals的区别

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

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

posted @ 2017-09-30 13:44  离愁i  阅读(133)  评论(0编辑  收藏  举报