== 和 equals 比较的区别?

让我看下面一个例子:

 char[] chs={'a','b','c'};
String s1=new String(chs);
String s2=new String(chs);
System.out.println(s1==s2);
System.out.println(s1.equals(s2));

我们定义了一个数组,众所周知,数组是new出来的一个对象,当我们执行第一行代码时,就已经把他放到了堆内存中,我们定义的s1,s2基于chs数组创建的两个字符串,这两个字符串创建时在堆内存中开辟了两个新的内存空间,两个值所在的地址传给了s1,s2,关系运算符==比较的是两个值的地址,适合用于基本数据类型,而我们使用的是equals重写Object中的方法,他比较的是对象,所以会产生两种不同的结果。

posted @   吕伟昊  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示