“==”与equals区别

“==”比较地址

JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。

例题


输出为:

s1 != s2

s1 equals s2

程序在运行的时候会创建一个字符串缓冲池当使用 s2 = "Monday" 这样的表达是创建字符串的时候,程序首先会在这个String缓冲池中寻找相同值的对象,在第一个程序中,s1先被放到了池中,所以在s2被创建的时候,程序找到了具有相同值的 s1

将s2引用s1所引用的对象"Monday"

第二段程序中,使用了 new 操作符,他明白的告诉程序:"我要一个新的!不要旧的!"于是一个新的"Monday"Sting对象被创建在内存中。他们的值相同,但是位置不同,一个在池中游泳一个在岸边休息。哎呀,真是资源浪费,明明是一样的非要分开做什么呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,449评论 18 399
  • java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,l...
    雨尘1阅读 2,744评论 0 0
  • java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,l...
    Ten_Minutes阅读 1,625评论 0 1
  • 身边的朋友越来越多的做起了微商,看到他们每个月可观的收入,你也心动了,到底想好了没???? 昨天有人扫描加我,问微...
    小敏min阅读 1,891评论 0 0
  • 我们是社会性动物,喜欢群居生活,但我们依然无可避免地感到孤独。社会心理学家认为孤独具有三个特点:首先,它是由社会关...
    蕙茝_如常阅读 3,276评论 0 4

友情链接更多精彩内容