久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java Long類(lèi)型對(duì)比分析

瀏覽:5日期:2022-08-09 10:21:44
Java Long類(lèi)型對(duì)比

在開(kāi)發(fā)的到一個(gè)很基礎(chǔ)的問(wèn)題

在代碼中,兩個(gè)Long類(lèi)型數(shù)據(jù)比較用“==”,結(jié)果有時(shí)候true有時(shí)候false,原本以為L(zhǎng)ong會(huì)自動(dòng)轉(zhuǎn)long然后再比較,不會(huì)是這里的錯(cuò),找來(lái)找去實(shí)在找不到其他原因了,我就打印這兩個(gè)Long類(lèi)型出來(lái)看,果然是不相等,于是臉黑了一陣......

去查了一下資料,原來(lái)是這樣:

Java 基本類(lèi)型的包裝類(lèi)的大部分都實(shí)現(xiàn)了常量池技術(shù),即Byte,Short,Integer,Long,Character;

這5種包裝類(lèi)默認(rèn)創(chuàng)建了數(shù)值[-128,127]的相應(yīng)類(lèi)型的緩存數(shù)據(jù),但是超出此范圍仍然會(huì)去創(chuàng)建新的對(duì)象。

所以

當(dāng)Long型的值超過(guò)了【-128,127】的時(shí)候,他會(huì)new一個(gè)新的對(duì)象,如果沒(méi)有超過(guò)就會(huì)放到緩存中。

所以當(dāng)Long型的值超過(guò)了【-128,127】的時(shí)候,“==”判斷就不會(huì)相等了,可以理解為此時(shí)“==”比較的是兩個(gè)對(duì)象的地址而不是值。

Long class源碼:

public static Long valueOf(long l) { final int offset = 128; if (l >= -128 && l <= 127) { // will cachereturn LongCache.cache[(int)l + offset]; } return new Long(l);}正確的Long類(lèi)型比較姿勢(shì):

1.使用Long的longValue()方法,轉(zhuǎn)換成long值進(jìn)行比較

Long a = 128l;Long b = 128l;a.longValue() == b.longValue(); //true

2.使用Long的equals()方法

Long a = 128l;Long b = 128l;a.equals(b); //true

Long class 源碼:

public boolean equals(Object obj) { if (obj instanceof Long) {return value == ((Long)obj).longValue(); } return false;}java Long型和long型的比較大小一、Long數(shù)據(jù)的大小的比較

對(duì)于Long類(lèi)型的數(shù)據(jù),這個(gè)數(shù)據(jù)是一個(gè)對(duì)象,所以對(duì)象不可以直接通過(guò)“>”,“==”,“<”的比較,如果要比較兩個(gè)對(duì)象的是否相等的話(huà),我們可以用Long對(duì)象的.equals()方法:

Java Long類(lèi)型對(duì)比分析

二、long數(shù)據(jù)的大小的比較

對(duì)于long類(lèi)型的數(shù)據(jù),這個(gè)數(shù)據(jù)是一個(gè)基本數(shù)據(jù)類(lèi)型,不屬于對(duì)象,所以可以直接通過(guò)“>”,“==”,“<”作比較

Java Long類(lèi)型對(duì)比分析

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 高密市| 维西| 星子县| 宕昌县| 舞阳县| 离岛区| 磐石市| 寿宁县| 正安县| 平果县| 渝北区| 揭阳市| 察隅县| 简阳市| 迭部县| 图们市| 盐津县| 邹平县| 苏尼特左旗| 仲巴县| 仁化县| 上虞市| 福泉市| 思茅市| 安义县| 扶绥县| 遂平县| 白玉县| 赤城县| 安福县| 洪江市| 凯里市| 桃园市| 廊坊市| 达州市| 平乡县| 万全县| 连平县| 高要市| 宁河县| 连南|