1. 程式人生 > 其它 >java 中 == 運算子 和 equals方法 的區別

java 中 == 運算子 和 equals方法 的區別

  • == 是一種運算子,equals 是object類中的一種通用方法
  • 八大基本資料型別只能使用 == ,因為它們沒有equals方法

八大基本資料型別

  • 字元型別:char
  • 布林型別:boolean
  • 數值型別:byte,short,int,long,float,double

==

  • 基本型別:比較值是否相等
  • 引用型別:比較地址是否相同

equals

  • 未重寫時:比較地址是否相同
  • 重寫時:比較所指物件的內容
String s1 = "hello";						//儲存在棧中
String s2 = "hello";						//直接指向棧中原有的hello
String s3 = new String("hello");			//新建在堆記憶體中
System.out.println(s1 == s2);				//true		== 對比地址是否相同
System.out.println(s1 == s3);				//false
System.out.println(s2 == s3);				//false
System.out.println(s1.equals(s2));			//true		equals 對比字串內容是否相同
System.out.println(s1.equals(s3));			//true
System.out.println(s2.equals(s3));			//true

使用總結:八大基本資料結構作對比時用 == 運算子,引用型別(如String)作對比時用equals方法