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

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

 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”区别以下:code

 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方法,从而比较的是内容。blog

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

相关文章
相关标签/搜索