日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式

瀏覽:27日期:2022-08-23 10:23:06

我就廢話不多說(shuō)了,大家還是直接看代碼吧~

public static void main(String[] args) { // 1、將long型轉(zhuǎn)化為int型,其中int、long是基礎(chǔ)類型 long a = 10; int b = (int) a; System.out.println('1、將long型轉(zhuǎn)化為int型:' + b); // 2、將int型轉(zhuǎn)化為long型,其中int、long都是基礎(chǔ)類型 int a1 = 10; long b1 = a1; System.out.println('2、將int型轉(zhuǎn)化為long型:' + b1); // 3、將Long型轉(zhuǎn)換為int型的,其中Long型是包裝類型 Long a2 = 10l; int b2 = a2.intValue(); System.out.println('3、將Long型轉(zhuǎn)換為int型:' + b2); //4、將Integer型轉(zhuǎn)化為long型,其中Integer型是包裝類型,long型是基礎(chǔ)類型 Integer a3=10; long b3=a3.longValue(); System.out.println('4、將Integer型轉(zhuǎn)化為long型:'+b3); //5、將Integer型轉(zhuǎn)化為L(zhǎng)ong型,其中Integer、Long型都是包裝類型 Integer a4=10; Long b4=a4.longValue(); System.out.println('5、將Integer型轉(zhuǎn)化為L(zhǎng)ong型:'+b4); }

輸出結(jié)果:

1、將long型轉(zhuǎn)化為int型:10

2、將int型轉(zhuǎn)化為long型:10

3、將Long型轉(zhuǎn)換為int型:10

4、將Integer型轉(zhuǎn)化為long型:10

5、將Integer型轉(zhuǎn)化為L(zhǎng)ong型:10

補(bǔ)充知識(shí):JAVA中Long與Integer比較容易犯的錯(cuò)誤

今天使用findbugs掃描項(xiàng)目后發(fā)現(xiàn)很多高危漏洞,其中非常常見(jiàn)的一個(gè)是比較兩個(gè)Long或Integer時(shí)直接使用的==來(lái)比較。 其實(shí)這樣是錯(cuò)誤的。

因?yàn)長(zhǎng)ong與Ineger都是包裝類型,是對(duì)象。 而不是普通類型long與int , 所以它們?cè)诒容^時(shí)必須都應(yīng)該用equals,或者先使用longValue()或intValue()方法來(lái)得到他們的基本類型的值然后使用==比較也是可以的。

但是有一種特殊情況, 其實(shí)Long與Integer都將 -128~127 這些對(duì)象緩存了。 可以看看Long類型源碼里面有一個(gè)LongCache類,代碼如下:

private static class LongCache { private LongCache(){} static final Long cache[] = new Long[-(-128) + 127 + 1]; static { for(int i = 0; i < cache.length; i++) cache[i] = new Long(i - 128); } }

先看看這個(gè)例子:

public class Test05 { public static void main(String[] args) { Long a = 5L; Long b = 5L; System.out.println('a == b ? ' + (a == b)); Long c = 129L; Long d = 129L; System.out.println('c == d ? ' + (c == d)); }}

打印的結(jié)果是:

a == b ? true

c == d ? false

原因

首先來(lái)看看 Long a = 5L ; 它是如何將一個(gè)基本類型long包裝成一個(gè)對(duì)象Long的 。

可以寫(xiě)一個(gè)測(cè)試類,然后反編譯一下,看看java它是如何解析Long a = 5L這樣一條命令的 。

測(cè)試類如下:

public class Test06 { Long l = 3L;}

然后使用javap -verbose Test06 就能看到反編譯的結(jié)果了, 下面是輸出的部分:

{java.lang.Long l; public com.spring.test.Test06(); Code: Stack=3, Locals=1, Args_size=1 0: aload_0 1: invokespecial #10; //Method java/lang/Object.'<init>':()V 4: aload_0 5: ldc2_w #12; //long 3l 8: invokestatic #14; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long; 11: putfield #20; //Field l:Ljava/lang/Long; 14: return LineNumberTable: line 3: 0 line 5: 4 line 3: 14 LocalVariableTable: Start Length Slot Name Signature 0 15 0 this Lcom/spring/test/Test06; }

從Code中的8可以看出調(diào)用了Long的一個(gè)類方法Long.valueOf(Long) , 所以可以得到的結(jié)論是Long a = 5L實(shí)際上等于 Long a = Long.valueOf(5) ;

然后再看看Long.valueOf()方法是如何定義的:

public static Long valueOf(long l) { final int offset = 128; if (l >= -128 && l <= 127) { // will cache return LongCache.cache[(int)l + offset]; } return new Long(l); }

一目了然,會(huì)先判斷基本類型的值如果在-128~127之間,就會(huì)直接從LongCache里面取出緩存的對(duì)象返回,否則就new一個(gè)新的Long對(duì)象返回 。

現(xiàn)在就不難理解Test05程序執(zhí)行得到的結(jié)果了,因?yàn)閍與b等于5,在-127~128之內(nèi),所以都是直接從LongCache里面返回的一個(gè)Long對(duì)象,所以他們?cè)谑褂?=比較的時(shí)候,就是相等的(對(duì)于對(duì)象類型來(lái)說(shuō),==比較的是兩個(gè)對(duì)象的引用指向堆中的地址) ,而c與d等于129,不在-127~128之間,所以他們他們是分別new出來(lái)的兩個(gè)新的Long對(duì)象,使用==來(lái)比較自然是不相等的了。

Long重寫(xiě)了equals方法:

public boolean equals(Object obj) { if (obj instanceof Long) { return value == ((Long)obj).longValue(); } return false; }

它是先通過(guò).longValue()方法獲取Long對(duì)象的基本類型long的值之后再做比較的。

所以對(duì)于Integer與Long的比較,最好是使用equals來(lái)比較才能確保得到我們想要的結(jié)果。

Integer與Long一樣,這里就不舉例了。

以上這篇java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲日本在线观看视频| 精品国产第一福利网站| 成人午夜精品| 蜜桃成人精品| se01亚洲视频| 日韩毛片视频| 精品一区二区三区中文字幕视频 | 亚洲一二av| 亚洲综合欧美| 日韩美女国产精品| 国产探花一区二区| 精品国产午夜| av在线日韩| 欧美日韩黑人| 亚洲一区久久| 日韩一区网站| 国产精品视频一区二区三区综合| 九九九精品视频| 精品亚洲美女网站| 99视频一区| 欧美日韩一区二区三区四区在线观看| 国产日韩在线观看视频| 国产一区二区三区四区| 欧洲在线一区| 亚洲精品观看| 精品网站999| 91高清一区| 69堂精品视频在线播放| 国产精品成久久久久| 中文字幕系列一区| 久久亚洲图片| 福利一区和二区| 91久久久久| 精品国产午夜| 亚洲综合婷婷| 色老板在线视频一区二区| 亚洲男人在线| 国产真实久久| 麻豆成人综合网| 视频一区视频二区中文| 国产成人精品亚洲线观看 | 你懂的国产精品| 91高清一区| 丰满少妇一区| 日韩欧美四区| 午夜电影亚洲| 国产一区不卡| 国产伦理一区| 日本在线成人| 日韩视频久久| 98精品久久久久久久| 日韩高清在线不卡| 2023国产精品久久久精品双| 亚洲国产福利| 久久亚洲精精品中文字幕| 亚洲视频二区| 三级在线看中文字幕完整版| 日韩精选在线| 视频一区二区三区入口| 三上悠亚国产精品一区二区三区 | 最新国产精品视频| 亚洲特级毛片| 日韩高清中文字幕一区二区| 国产精品啊v在线| 国产三级精品三级在线观看国产| 国产一区二区高清| 99国产精品| 蜜臀久久99精品久久一区二区| 精品国产99| 国产美女高潮在线观看| 国产成人精品一区二区三区免费| 国产高清精品二区| 日韩国产欧美视频| 88久久精品| 国产精品一区二区三区av麻| 欧美综合社区国产| 久久国产视频网| 亚洲免费影院| 婷婷精品在线| 四虎在线精品| 国产精品亚洲欧美日韩一区在线| 久久精品xxxxx| 国产精品xxx在线观看| 国产精品综合| 欧美日韩精品免费观看视完整| 欧美韩日一区| 国产一区丝袜| 欧美精品黄色| 日本一区二区中文字幕| 国产乱码精品| 久久永久免费| 久久九九99| 精品一区二区三区视频在线播放 | 日韩一区二区三区精品| 欧美亚洲tv| 国产一区二区三区四区五区传媒 | 国产精品亚洲欧美一级在线| 国产一区二区三区四区五区| 免费一二一二在线视频| 国产综合欧美| 国产欧美一区二区三区国产幕精品| 国产一区二区三区天码| 日本 国产 欧美色综合| 国产精品久久久久久久久免费高清 | 另类国产ts人妖高潮视频| 免费看精品久久片| 欧美中文一区| 9国产精品视频| 亚洲精品三级| 久久69成人| 免费国产自久久久久三四区久久 | 热久久免费视频| 久久九九精品| 成人高清一区| 国产私拍福利精品视频二区| 亚洲小说欧美另类婷婷| 韩国女主播一区二区三区| 日本亚洲欧美天堂免费| 在线亚洲成人| 99久久www免费| 国产在线观看91一区二区三区| 日韩一区精品| 午夜亚洲福利在线老司机| 成人福利视频| 国产精品麻豆久久| 欧美日韩中出| 黄色亚洲免费| 日韩亚洲一区在线| 日本在线视频一区二区| 石原莉奈在线亚洲三区| 99精品一区| 鲁大师精品99久久久| 日韩高清成人在线| 蜜桃久久久久久| 最新中文字幕在线播放| 色爱综合网欧美| 91亚洲国产高清| 正在播放日韩精品| 久久精品伊人| 国产精品v日韩精品v欧美精品网站| 九一精品国产| 精品国产乱码久久久久久1区2匹| 7777精品| 日本一区免费网站| 日日夜夜免费精品视频| 视频二区不卡| 在线一区视频| 亚洲综合日本| 亚洲在线成人| 91欧美精品| 亚洲精品日韩久久| 久久国产人妖系列| 精品国产精品国产偷麻豆 | 麻豆91精品视频| 97精品国产| 香蕉精品视频在线观看| 蜜臀精品久久久久久蜜臀 | 欧美一区不卡| 麻豆理论在线观看| 丝袜国产日韩另类美女| 国产精品最新| 欧美 日韩 国产一区二区在线视频| 久久av在线| 高清一区二区三区| 一本色道精品久久一区二区三区| 欧美专区在线| 久久久久久夜| 青青草视频一区| 99精品综合| 久久不见久久见免费视频7 | 欧美aa一级| 日韩高清一区二区| 欧美日韩国产高清| 国产日产一区| 国产毛片久久| 日韩一区二区在线免费| 日韩av网站在线免费观看| 999国产精品永久免费视频app| 免费精品视频最新在线| 天堂中文av在线资源库| 久久精品97| 亚洲日本免费电影| 国产视频一区在线观看一区免费| 久久久久久婷| 国产欧美三级| 日本综合视频| 蜜桃av一区二区三区电影| 欧美一区二区三区高清视频| 精品国产一区二区三区性色av| 亚州国产精品| 蜜臀va亚洲va欧美va天堂| 激情综合网址| 国产综合精品| 在线天堂中文资源最新版| 久久精品97| 国产精品午夜av| 国产精品亚洲成在人线| 欧美日韩一区二区三区在线电影| 亚洲一区二区av| 亚洲精品国模|