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

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

這是因?yàn)椋寒?dāng)取值范圍超過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"理論上不分大小寫,但是若寫成"l"容易與數(shù)字"1"混淆,不容易分辯。所以最好大寫。 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ò): 無法轉(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)文章
SpringBoot @ExceptionHandler與@ControllerAdvice異常處理詳解
在Spring Boot應(yīng)用的開發(fā)中,不管是對(duì)底層數(shù)據(jù)庫操作,對(duì)業(yè)務(wù)層操作,還是對(duì)控制層操作,都會(huì)不可避免的遇到各種可預(yù)知的,不可預(yù)知的異常需要處理,如果每個(gè)處理過程都單獨(dú)處理異常,那么系統(tǒng)的代碼耦合度會(huì)很高,工作量大且不好統(tǒng)一,以后維護(hù)的工作量也很大2022-10-10
Java從控制臺(tái)接受輸入字符的簡(jiǎn)單方法
這篇文章主要介紹了Java從控制臺(tái)接受輸入字符的簡(jiǎn)單方法,需要的朋友可以參考下2014-02-02
Java代碼注釋規(guī)范(動(dòng)力節(jié)點(diǎn)整理)
代碼注釋是架起程序設(shè)計(jì)者與程序閱讀者之間的通信橋梁,最大限度的提高團(tuán)隊(duì)開發(fā)合作效率。也是程序代碼可維護(hù)性的重要環(huán)節(jié)之一。下面通過本文說一下我們?cè)谌粘i_發(fā)中使用的代碼注釋規(guī)范2017-03-03
SpringBoot工程打包后執(zhí)行Java?-Jar就能啟動(dòng)的步驟原理
這篇文章主要介紹了SpringBoot工程打包后為何執(zhí)行Java?-Jar就能啟動(dòng),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
java實(shí)現(xiàn)手機(jī)短信驗(yàn)證的基本思路
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)手機(jī)短信驗(yàn)證的基本思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
java基于遞歸算法實(shí)現(xiàn)漢諾塔問題實(shí)例
這篇文章主要介紹了java基于遞歸算法實(shí)現(xiàn)漢諾塔問題,結(jié)合具體實(shí)例形式分析了java遞歸算法的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2017-07-07
IDEA 如何導(dǎo)入別人的javaweb項(xiàng)目進(jìn)行部署
這篇文章主要介紹了IDEA 如何導(dǎo)入別人的javaweb項(xiàng)目進(jìn)行部署,本文給大家分享我的詳細(xì)部署過程及遇到問題解決方法,需要的朋友可以參考下2023-03-03
java實(shí)現(xiàn)國產(chǎn)sm4加密算法
這篇文章主要介紹了java實(shí)現(xiàn)國產(chǎn)sm4加密算法的步驟,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-12-12

