java中的物件比較

2021-06-18 12:52:34 字數 396 閱讀 7566

public class intergererror

private static boolean compare(integer num1, integer num2)}

你的答案是什麼,返回一定是true?哈哈,再思考一下。

這段**的返回值為false,這就有些不明白了,為什麼會這樣,既然用的是或,那不是大就是小或者是等於,肯定有乙個成立。

上面也是我的想法,後來網上找了一些資料,總結起來大概是:「==」比較簡單型別的值或者是比較物件是不是引用了同乙個物件,至於「》」和「《」對於物件來說也就沒有意義了。

所以比較物件的值的時候最好還是用equal()方法,或者是去的物件的值來進行比較。

其實之前這個事情也沒有引起注意,今天遇到了,基礎不牢惹的禍。望大牛們批評指正,分享你的經驗。

Java中的物件比較

首先明確一點 永遠是在比較位址,而equals是比較內容的值。當我們書寫這樣的 int a 10 int b 10 jvm 其實是在棧 棧幀中的操作棧?中查詢 3 這個常量,如已經存在了,變數 a 的引用就指向存放 3 的位址,如果沒有,就建立乙個。因此給基本資料型別的變數賦值時,若它們的值相等,那...

java 集合類中的物件如何比較

1 list 集合 被比較的物件要重寫equals 方法,呼叫list中contains 方法,就是用equals 方法比較的.list 集合 允許重複元素,允許空值 2 hashset集合 不允許重複元素,允許空值 被比較的物件要重寫hashcode 方法和重寫equals 方法,兩個都要.3 t...

java中物件集合的比較與排序

現種方式。一是物件本身直接實現comparable介面 class student implements comparable 另一種是借助比較器物件,這個比較器物件針對指定的類來定義。並實現comparator介面 class student 最後借助conections.sort 或arrayl...