C#和Java中“==”和“equals”区别

本文详细解析了C#与Java中==与equals的区别,重点对比了两者在字符串比较上的不同行为。在C#中,string重载了==操作符来直接比较字符串内容;而在Java中,equals方法被String类重写以实现内容的比较。

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

C#中“==”和“equals”区别如下:

 1 using System;
 2 class Program
 3 {
 4     public static void Main(string[] args)
 5     {
 6         string s1 = "ab";
 7         string s2 = "a";
 8         s2 += "b";
 9         Console.WriteLine(s1 == s2); //true  比较内容  C#中string重载了操作符"==",而Java中的String并没有重载操作符"=="
10         Console.WriteLine((object)s1 == (object)s2); //false  比较地址值
11         Console.WriteLine(s1.Equals(s2)); //true  比较内容
12     }
13 }

 

Java中“==”和“equals”区别如下:

 1 class Test 
 2 {
 3     public static void main(String[] args) 
 4     {
 5         String s1 = "ab";
 6         String s2 = "a";
 7         s2 += "b";
 8         System.out.println(s1 == s2); //false  比较地址值 注意此处与C#的区别
 9         System.out.println((Object)s1 == (Object)s2); //false 比较地址值
10         System.out.println(s1.equals(s2)); //true  比较内容,String重写了Object中的equals
11     }
12 }

 

C#和Java中的操作符“==”是比较两个变量的值是否相等,即栈中的值是否相等,这个栈中的值可能是值类型的值,也可能是引用类型的地址。

C#和Java中的equals方法则是重写了Object中的equals方法,从而比较的是内容。

区别:C#中的string重载了操作符"==",使得两个字符串间比较的是内容,而非比较地址值。而Java的两个字符串对象则比较的是地址值,而非内容。

转载于:https://www.cnblogs.com/qq641120784/p/9494658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值