Java篇-基础地基-(==和equals()的区别?)

张开发
2026/4/9 1:04:10 15 分钟阅读

分享文章

Java篇-基础地基-(==和equals()的区别?)
java篇 1.基础地基 2.设计原理 3.项目实战在回答标题问题前先来讲讲数据类型。基本数据类型byte,short,int,long,float,double,char,boolean共8种那它们对应的包装类如下包装类这时你可能有疑惑平时常见的String在哪?String:没错String它比较特殊,既不是包装类也不是基础数据类型它只是一个普通的引用类型类记录字符串序列。好了有了以上的基础知识开始回答标题问题。和equals()的区别针对8个基本数据类型只能用判断比较的是值而.equals()是用在包装类上的所以基本数据类型跟它没关系。针对包装类比较的是内存堆当中的首地址看引用是否指向同一个对象而.equals()比较的是内容。针对String类型也是一样比较首地址是否为同一个对象.equals()比较内容。接下来看例题就懂了例题①第一个True因为s1已经把对象加到常量池里第二个也为True因为s1和s2的内容相同。细致讲解当你直接用双引号创建字符串时如String sabc;,Java会先去这个池子里找有没有相同的字符串。如果找到了就返回这个已有对象的引用如果没找到就在池子里创建一个新的。而使用new关键字时如String s new String(abc);,Java会在堆内存中强制创建一个新的对象无论常量池是否已经存在。②第一个为False,因为用到new直接在常量池里新创一个对象那首地址就变了。第二个内容还是相同的所以为True。③④⑤这个例子里面可能就是你在项目当中遇到的bug哦~扩展null和isEmpty()

更多文章