包裝器型別的 == 與 equals
問題的起源:
討論這個問題,主要源於專案中的一個小bug。廢話不說,先來看段程式碼:
Long L1 = new Long(123);
Long L2 = new Long(123);
System.out.println("L1==L2: "+(L1==L2));
結果是什麼呢,顯然,兩個類的例項有不同的地址,故其引用的值也是不同的,而 == 號表示的是值和地址都相同,故結果為:
L1==L2: false
那麼一般在包裝器類中怎麼去比較兩個類的值相同呢,對!就是用equals。繼續使用上面的例子。
System.out.println("L1 equals L2: "+L1.equals(L2));
result:
L1 equals L2: true
未完待續。。。。
相關推薦
包裝器型別的 == 與 equals
問題的起源: 討論這個問題,主要源於專案中的一個小bug。廢話不說,先來看段程式碼: Long L1 = new Long(123); Long L2 = new Long(123); Sy
java 包裝器型別 基本型別 == equals
package wrapper; public class MyTest { public static void main(String[] args) { int i = 1; Integer I11 = 1; Integer I12 = 1; Int
Java_52.1_基本資料型別_包裝器型別的關係
在程式設計中經常用到一系列的資料型別,在Java中也一樣包含八中資料型別,這八種資料型別又各自對應一種包裝器型別。 String包裝類引用型別 如下表: 基本型別 包裝器型別 boolean Boolean
Java中關於基本型別與物件包裝器==的問題
這也是最近比較火的一道小題目 不加思索的話往往以為都是true。但是事實不是這樣的 ==運算子也可以應用於物件包裝器物件,只不過檢測的物件是否指向同一區域,所以c==d通常不成立, 然而,Java實現卻有可能讓它成立。 如果將經常出現的值包裝到同一物件中,
java集合---檢視與包裝器
檢視—-通過使用檢視可以獲得其他實現了Collection與Map介面的物件。對映類的keySet就是這樣一個例項。初看起來,好像這個方法建立了一個新集,並將對映中的所有鍵都填進去,然後返回這個集。但是,事實並非如此。取而代之的是:keySet方法返回一個實現了Set介面的類物件,這個類
4.Java_關鍵字this、super、static、final(終結器)與基本資料型別轉換
一、關鍵字this 1.表示呼叫本類屬性:在類中訪問類的屬性,一定要加上this關鍵字。 2.表示呼叫本類方法: (1)呼叫普通方法:this.方法名(引數); 當有類的繼承關係時,表示本類方法一定要加上th
Java中包裝型別與基本資料型別的異同
基本資料型別: Java語言提供了八種基本型別: 六種數字型別(四個整數型,兩個浮點型),一種字元型別,還有一種布林型。 1、整數: 包括int,short,byte,long , 初始值為0 2、浮點型: float,double , 初始值為0.0 3、字
Java中基本資料型別與包裝類,字串轉換
儲存範圍大小: byte-short-char-int-long-float-double 低階到高階自動型別轉換: int i = 5; float f = i; double d = i; 高階到低階強制型別轉換: int a = 20; byte b = (byte) a;
基本型別與包裝型別的異同
1、在Java中,一切皆物件,但八大基本型別(char,byte,int,double,float,short,long,boolean)卻不是物件。 2、宣告方式的不同,基本型別無需通過new關
本型別與包裝(裝箱)型別的區別
Java的型別分為兩部分,一個是基本型別(primitive),如int、double等八種基本資料型別;另一個是引用型別(reference type),如String、List等。而每一個基本型別又各自對應了一個引用型別,稱為包裝型別(或裝箱型別,boxe
基本型別與包裝(裝箱)型別的區別
Java的型別分為兩部分,一個是基本型別(primitive),如int、double等八種基本資料型別;另一個是引用型別(reference type),如String、List等。而每一個基本型別又各自對應了一個引用型別,稱為包裝型別(或裝箱型別,box
基本資料型別與包裝類區別
java中八大基本資料型別: Byte,short,int,long,char,double,float,boolean 二者之間也存在一些區別: 宣告方式不同,基本型別不適合new關鍵字,而包裝型別需要使用new關鍵字來在堆中分配儲存空間; 儲存方式及位置不同,基本型別
C# 二十五、匿名型別與物件初始化器(附帶:類初始化器)
匿名型別提供了一種方便的方法,可用來將一組只讀屬性封裝到單個物件中,而無需首先顯式定義一個型別。 型別名由編譯器生成,並且不能在原始碼級使用。 每個屬性的型別由編譯器推斷。 可通過使用new運算子和物件初始值建立匿名型別。 匿名型別包含一個或多個公共只讀屬性。 包含
#Java乾貨分享:一分鐘明白基本資料型別與對應的包裝類
很多朋友在剛開始學習Java的時候,總是分不清資料型別、包裝類等等名詞,總是導致程式碼是對的,可是因為資料轉換出錯而執行錯誤,所以筆者特意針對一些初學者,列出了這兩者之間的異同之處。 Java語言提供了八種基本型別。六種數字型別(四個整數型,兩個浮點型),一種字元型別,還有一種布林型。&n
C++函式包裝器與引用包裝器,函式繫結器的使用
函式包裝器,主要用於模板中函式的使用 #include <iostream> #include<functional> using namespace std; temp
Java中基本資料型別與對應的包裝類和引用資料型別
基本資料型別變數儲存的是值,引用型別儲存的是物件的引用(物件的地址)。 基本資料型別不具有物件的特性,當有些地方必須要使用物件的時候,例如集合類(List,Set等),基本資料型別就不能使用了,所以Java提供了包裝類。基本資料型別可以進行加減乘除等運算,而包裝類提供了很多
java基本型別與包裝型別
基本資料型別:byte,int, short, long, boolean,char, float,double等 包裝型別 : Byte,Integer,Short,Long,Boolean,Character,Float,Double等
可迭代物件(iterable)與迭代器型別(iterator)
首先,廖雪峰老師的教程中解釋了迭代器和生成器,這篇文章只是補充和我個人的總結。 什麼是迭代 可以直接作用於for迴圈的物件統稱為可迭代物件(Iterable)。 可以被next()函式呼叫並不斷返回下一個值的物件稱為迭代器(Iterator)。
java基本型別和包裝器類【轉】
java是一種面嚮物件語言,java中的類把方法與資料連線在一起,並構成了自包含式的處理單元.但在java中不能定義基本型別(primitive type),為了能將基本型別視為物件來處理,並能連線相關的方法,java為每個基本型別都提供了包裝類,這樣,我們便可以把這些
java 基本型別與包裝類的==和equels問題
Integer i = 42; Long l = 42l; Double d = 42.0; 下面為true的是 (i == l)=》false (i == d)=》false (l == d)=》false i.equals(d)=》false d.equals(l)=》