==和equals的应用区别

本文详细解释了Java中==与equals的区别。==用于比较基本数据类型的实际值和引用类型的地址,而equals则用于判断对象内容是否一致。通过具体例子展示了它们在Integer和String类型中的表现差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

==equals均表示相等的意思,在他们在进行实际的相等判定时,却有非常大的区别。
==
在运用基本数据类型的时候,通过比较他们实际的值来判定是否相同,而用于比较引用类型的时候,则是比较两个引用的地址是否相等,也就是指是否指向同一个对象。
Equals
是判断对象的内容是否一样,如下s3,s4是不同对象,但内容相同。
举例如下:
         Integer i1=135;
        Integer i2=135;
        Integer i3=100;
        Integer i4=100;
       
        String s1=”
你好!”;
        String s2=”
你好!”;
        String s3=new String("
你好!");
        String s4= new String("
你好!");
       
结果说明: i1==i2 返回 false; i1.equals(i2) 返回true;
                  i3==i4
返回 true i3.equals(i4)  返回true 
                  s1==s2
返回 true ;  s1.equals(s2) 返回  true;  
                  s3==s4
返回false;   s3.equals(s4) 返回  true; 
   
其它说明:Integer 类型的变量,用= =做判断时,在 -128 ~ 127之间的数值时返回true;否则返回false;

### C# 中 `==`、`Contains` `Equals` 方法的区别 #### `==` 运算符 在 C# 中,`==` 是用于比较两个对象是否相等的运算符。对于引用类型,默认情况下它会比较两个对象的引用地址;而对于值类型,则是比较它们的内容。 ```csharp string str1 = "hello"; string str2 = "hello"; if (str1 == str2) { Console.WriteLine("Strings are equal"); } ``` 当应用于字符串时,编译器会对常量表达式执行优化并使两者指向相同的内存位置[^1]。 #### `Contains` 方法 此方法通常是在集合类中找到是否存在指定项的方法之一。例如,在列表或数组中检查某个特定元素的存在性。对于字符串来说,`Contains` 可用来判断子串是否存在于另一个字符串内。 ```csharp var numbers = new List<int> { 1, 2, 3 }; bool containsTwo = numbers.Contains(2); string sentence = "This is a test."; bool hasTest = sentence.Contains("test"); // true ``` 上述例子展示了如何利用泛型列表中的 `Contains` 来验证整数以及通过调用字符串实例上的同名成员来查找子序列。 #### `Equals` 方法 该方法由 .NET Framework 提供给所有对象,并允许开发者覆盖默认行为以实现更精确的对象间对比逻辑。特别是针对自定义类型的实例之间进行深拷贝级别的匹配测试很有帮助。另外值得注意的是,某些内置类型如 `String` 已经实现了自己的版本以便更好地支持大小写敏感/不敏感等多种情况下的文字串比较需求。 ```csharp object objA = "example"; object objB = "EXAMPLE".ToLower(); // Using overridden version of Object.Equals() Console.WriteLine(objA.Equals(objB)); // True because both strings have the same content after conversion to lower case. ``` 在这个片段里可以看到即使原始变量不是完全相同(一个是大写的 E),由于采用了忽略大小写的转换方式再做平等检验所以最终返回的结果还是肯定性的答复[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值