java里equal==号和equal的区别?都是一个类的实例化,但是比较结果不一样?

我知道枚举会被编译成一个包含私有构造参数和一堆静态方法的类当去比较两个枚举的时候,总是使用equals()方法例如:

除此之外,我也可以使用 == 替代equals() 方法

我有5年以上的java里equal編程经验并且我想我也懂得 == 和 equals() 之间的区别,但是我仍然觉得很困惑哪一个操作符才是我该使用的。

二者皆对如果你看过枚举的源码,你会发现在源码中equals也仅仅非常简单的 == 。 我使用 == 因为无论如何,这个左值是可以为 null的

比如String本身重写了equals方法 按位进行char类型的比较

你可以重写equals和hashcode方法 实现你想要的对象比如一个人的学号相同 equals方法就返回true什么的

你对这个回答的评价是

比较的是两个对象的值,==仳较的是两个对象的地址详细内容可以看下面的参考资料,希望能帮到你

你对这个回答的评价是?

来自电脑网络类芝麻团 推荐于

比較两个基本数据类型是否相等用==因为只有类才会有equals方法。

备注:String不是基本数据类型

二、比较对象为引用数据类型

euqals和==本质上都是比较比较嘚是两个对象的引用(内存地址)是否相同equals()是Object类的方法 ,object类是所有类的基类所以每个类都会继承equals()方法。

但在String,Integer,Date在这些类当中重写了equals方法而不再是比较对象在堆内存中的存放地址了,而是比较它们指向的实体(内容)是否相同

你对这个回答的评价是?

我要回帖

更多关于 java里equal 的文章

 

随机推荐