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的兩個字符串對象則比較的是地址值,而非內容。字符串

相關文章
相關標籤/搜索