java 中 == 運算子 和 equals方法 的區別
阿新 • • 發佈:2022-03-17
- == 是一種運算子,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方法