關(guān)于Long和Integer相互轉(zhuǎn)換方式
一、int和long互相轉(zhuǎn)換
(一)long轉(zhuǎn)化為int
(1)類型強(qiáng)制轉(zhuǎn)換
long numberLong = 123L;// "L"理論上不分大小寫(xiě),但是若寫(xiě)成"l"容易與數(shù)字"1"混淆,不容易分辯。所以最好大寫(xiě)。 int numberInt = (int) numberLong;
注意:
int有4個(gè)字節(jié),取值范圍為[-231,231 - 1]
long有8個(gè)字節(jié),[-263 ,263 -1]
如果long的值超過(guò)了int區(qū)值范圍,會(huì)出現(xiàn)值溢出的問(wèn)題:

就會(huì)得以下內(nèi)容:

這是因?yàn)椋寒?dāng)取值范圍超過(guò)int的最大值時(shí),會(huì)變?yōu)閕nt取值范圍的最小值,不會(huì)繼續(xù)增長(zhǎng)了。

(2)利用BigDecimal強(qiáng)制轉(zhuǎn)換
long numberLong = 100L; BigDecimal numBigDecimal = new BigDecimal(numberLong); // 或 numBigDecimal = BigDecimal.valueOf(numberLong); int numberInt = numBigDecimal.intValue();
(二)int轉(zhuǎn)化為long
(1)類型強(qiáng)制轉(zhuǎn)換
long numberLong = 123L;// "L"理論上不分大小寫(xiě),但是若寫(xiě)成"l"容易與數(shù)字"1"混淆,不容易分辯。所以最好大寫(xiě)。 int numberInt = (int) numberLong;
(2)利用BigDecimal強(qiáng)制轉(zhuǎn)換
int numberInt = 100; BigDecimal bigNumber = new BigDecimal(numberInt); // 或者 BigDecimal bigNumber = BigDecimal.valueOf(numberInt); long numberLong = bigNumber.longValue();
二、Long和Integer的互相轉(zhuǎn)換
(一)Long轉(zhuǎn)化為Integer
(1)類型強(qiáng)制轉(zhuǎn)化(不可用)

會(huì)出現(xiàn)報(bào)錯(cuò)

報(bào)編譯錯(cuò): 無(wú)法轉(zhuǎn)換的類型,Long不能被強(qiáng)制轉(zhuǎn)化為Integer。
(2)使用Long的api
Long numberLong = new Long(1000L); Integer intNumber = numberLong.intValue();
(3)利用String轉(zhuǎn)換
Long longValue = new Long(1000l); String strValue = longValue.toString(); // 或者 Integer intValue = new Integer(strValue); Integer intValue = Integer.valueOf(strValue);
(二)Integer轉(zhuǎn)化為L(zhǎng)ong
(1)類型強(qiáng)制轉(zhuǎn)化(不可用)

(2)使用Integer的api
Integer intValue = new Integer(1000); Long longValue = intValue.longValue();
(3)使用Long的構(gòu)造方法
Integer intValue = new Integer(1000); Long longValue = new Long(intValue);
(4)利用String
Integer intValue = new Integer(1000); String strValue = intValue.toString(); Long longValue = new Long(strValue);
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Java實(shí)現(xiàn)RabbitMQ延時(shí)隊(duì)列
RabbitMQ?延時(shí)隊(duì)列是指消息在發(fā)送到隊(duì)列后,并不立即被消費(fèi)者消費(fèi),而是等待一段時(shí)間后再被消費(fèi)者消費(fèi),本文為大家介紹了實(shí)現(xiàn)RabbitMQ延時(shí)隊(duì)列的Java代碼,希望對(duì)大家有所幫助2023-06-06
淺談synchronized加鎖this和class的區(qū)別
synchronized 是 Java 語(yǔ)言中處理并發(fā)問(wèn)題的一種常用手段,本文主要介紹了synchronized加鎖this和class的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11
SpringBoot使用mybatis-plus分頁(yè)查詢無(wú)效的問(wèn)題解決
MyBatis-Plus提供了很多便捷的功能,包括分頁(yè)查詢,本文主要介紹了SpringBoot使用mybatis-plus分頁(yè)查詢無(wú)效的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
Java網(wǎng)絡(luò)編程之IO模型阻塞與非阻塞簡(jiǎn)要分析
這篇文章主要介紹Java網(wǎng)絡(luò)編程中的IO模型阻塞與非阻塞簡(jiǎn)要分析,文中附有示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09
SpringBoot項(xiàng)目保證接口冪等的五種方法
在計(jì)算機(jī)領(lǐng)域中,冪等是指任意一個(gè)操作的多次執(zhí)行總是能獲得相同的結(jié)果,不會(huì)對(duì)系統(tǒng)狀態(tài)產(chǎn)生額外影響,在Java后端開(kāi)發(fā)中,冪等性的實(shí)現(xiàn)通常通過(guò)確保方法或服務(wù)調(diào)用的結(jié)果具有確定性,本文給大家介紹了SpringBoot項(xiàng)目保證接口冪等的五種方法,需要的朋友可以參考下2025-07-07
Java中生成隨機(jī)數(shù)的4種方式與區(qū)別詳解
生成隨機(jī)數(shù)是我們?nèi)粘i_(kāi)發(fā)經(jīng)常會(huì)遇到的一個(gè)功能,這篇文章主要給大家介紹了關(guān)于Java中生成隨機(jī)數(shù)的4種方式與區(qū)別、應(yīng)用場(chǎng)景的相關(guān)資料,4個(gè)方式分別是Random、ThreadLocalRandom、SecureRandom以及Math,需要的朋友可以參考下2021-06-06
Java實(shí)現(xiàn)鎖定某個(gè)變量的幾種方式示例詳解
這篇文章主要為大家介紹了Java實(shí)現(xiàn)鎖某個(gè)變量的幾種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09

