這要說到==和 equals 的區別了。java
1. ==比較的是兩個對象在內存中的地址值(棧中的內容)。spa
2.equals 是 java.lang.Object 類的一個方法。equals 比較的是兩個對象的內容(堆中的內容)。java 中全部的類都默認繼承於 Object,因此全部的類都有這個方法。code
可是 Long 是一個對象,是對 long 的封裝。咱們看一下 Long 對象的源碼,裏面的 equals 方法是這麼寫的:htm
public boolean equals(Object obj) { if (obj instanceof Long) { return value == ((Long)obj).longValue(); } return false; }
因此兩個 Long 類型的變量進行比較的話,要麼用 equals,要麼先調用longValue 方法,拿到裏面的 long 值以後再進行==比較。對象
Long在java中是一個引用類型,而long類型是java中的一個基本數據類型,用來表示數值。blog
Long類型數據比較:
1.Long對象的.equals()方法:繼承
Long l1 =
new
Long(
10
);
內存
Long l2 =
new
Long(
10
);
get
System.out.println(l1.equals(l2));
2.Long對象的longValue()方法
Long l1 =
new
Long(
10
);
Long l2 =
new
Long(
10
);
System.out.println(l1.longValue() == l2.longValue());
long類型數據的大小比較:
能夠直接用 '>' '=' '<'比較
long
l1 =
10
;
long
l2 =
15
;
System.out.println(l1 == l2);
System.out.println(l1 > l2)