equals() 和 == 的区别

1.对于比较基本类型(int ,long ,float ,double)只能用==,比较的是栈中的值

   这里输出的结果肯定是true


2.对于String类型,==比较的是内存地址,equals()比较的是内容(值)


     用String直接创建变量时,c1,c2的地址都在常量池,所以地址和值都相同,都返回true

3.对于比较对象,== 和equals()比较的都是堆中的地址,但是我们一般都会在类中重写equals()方法

没有重写时输出都为false

java中equals()是存在Objiect类中,在Objict类中的equals()方法是基于==的,都是用于比较对象的地址,重写之后equals比较输出true

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • == == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个...
    yeren108阅读 1,950评论 0 0
  • 在编写代码的时候我们经常会使用 equals 和 == 来判断两个对象是否相等,那么两者有什么区别呢,主要有以下几...
    chocolatezhu阅读 15,788评论 6 9
  • 最近公司在招新人,作为一个也仅仅工作不到一年的小白被老板安排打电话初步筛选刚毕业的初级java开发人员。对于我来说...
    超人有点忙阅读 1,287评论 0 0
  • 好久没有见到外婆了,外公去世的两年间外婆明显地衰老了,人也瘦削了很多。外婆仍是个闲不住的人,来妈妈家小住,...
    21春雨无声阅读 2,241评论 0 0
  • 其实,每次到这样岁末年初的时候,都会很容易的让人去感慨,会回想这一年,自己得到了什么,又失去了什么,也会思考现在正...
    蓝琥珀和红魔鬼阅读 851评论 1 0