亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解解密Java中的類(lèi)型轉(zhuǎn)換問(wèn)題

 更新時(shí)間:2019年03月21日 16:02:33   作者:bddylww  
這篇文章主要介紹了Java中的類(lèi)型轉(zhuǎn)換問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

眾所周知Java中的數(shù)據(jù)類(lèi)型是強(qiáng)數(shù)據(jù)類(lèi)型,基本數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換尤其固定的規(guī)則,當(dāng)數(shù)據(jù)寬度比較窄的數(shù)據(jù)類(lèi)型(如int)轉(zhuǎn)換成數(shù)據(jù)類(lèi)型比較寬的數(shù)據(jù)類(lèi)型時(shí)(如double),則窄的數(shù)據(jù)類(lèi)型會(huì)加寬,可以完成自動(dòng)類(lèi)型轉(zhuǎn)換,這稱(chēng)為隱式轉(zhuǎn)換。

如:以下代碼沒(méi)有任何問(wèn)題,結(jié)果也是正確的,成績(jī)不會(huì)發(fā)生變化,所不同的是成績(jī)的精度提高了。

intintScore = 96;
doubledoubleScore = intScore;

那么如果試圖把寬的數(shù)據(jù)類(lèi)型(如double)轉(zhuǎn)換成窄的數(shù)據(jù)類(lèi)型(如float)時(shí),編譯器會(huì)提示編譯錯(cuò)誤,想要編譯通過(guò),需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換。那么,此時(shí)的數(shù)據(jù)會(huì)發(fā)生截?cái)?。產(chǎn)生的結(jié)果是:

1. 數(shù)據(jù)正確,只是精度降低了;

2. 數(shù)據(jù)不正確,發(fā)生了溢出;

對(duì)于上述第1種情況,比較好理解,我們來(lái)看個(gè)例子:

float floatWeight= 63.5; //編譯錯(cuò)誤
double doubleWeight= 63.5;

上述第一條語(yǔ)句會(huì)提示編譯錯(cuò)誤,那是因?yàn)榫幾g器看到63.5時(shí),會(huì)把它當(dāng)做一個(gè)double類(lèi)型,把一個(gè)double類(lèi)型賦給float類(lèi)型,當(dāng)然編譯不通過(guò)了。推薦的解決方案是:

float floatWeight = 63.5f;

當(dāng)然,你也可以強(qiáng)制轉(zhuǎn)換成float類(lèi)型:

float floatWeight = (float)63.5;

其實(shí),上述語(yǔ)句本質(zhì)是把double類(lèi)型的數(shù)據(jù)強(qiáng)制轉(zhuǎn)換成float類(lèi)型,發(fā)生了截?cái)?。雖然數(shù)據(jù)的大小沒(méi)有變化,但是數(shù)據(jù)的精度卻降低了。

同理:

doubleWeight = floatWeight; //隱式轉(zhuǎn)換
floatWeight = (float)doubleWeight;//強(qiáng)制轉(zhuǎn)換

現(xiàn)在,問(wèn)題來(lái)了,既然是截?cái)?,怎么?huì)產(chǎn)生溢出呢?我們先來(lái)看個(gè)例子:

shorti = 150;
shortj = 75;
byteb = (byte) i; 
byted = (byte) j; 
System.out.println("b = " + b);
System.out.println("d = " + d);

以上代碼的輸出結(jié)果是:

b = -106
d = 75

看到結(jié)果,不免會(huì)問(wèn)為什么b=-106呢?這是因?yàn)閺?qiáng)制轉(zhuǎn)換時(shí)發(fā)生溢出。由于150超出了byte能夠表示的最大范圍(-128 ~ 127)。

那么-106又是如何得來(lái)的呢?

i = 150,用二進(jìn)制表示i = 0000 0000 1001 0110,short類(lèi)型占2個(gè)字節(jié),16位,最高位的0表示正數(shù)。當(dāng)把i強(qiáng)制轉(zhuǎn)換成byte類(lèi)型時(shí),高位發(fā)生截?cái)?,i = 1001 0110。在計(jì)算機(jī)中,用補(bǔ)碼表示,最高位的1表示負(fù)數(shù),那么用原碼表示的話(huà):i = 1110 1010,正好表示十進(jìn)制數(shù)-106。

至此,也就解釋了為什么截?cái)嘁部赡軙?huì)發(fā)生溢出。

以上所述是小編給大家介紹的Java中的類(lèi)型轉(zhuǎn)換問(wèn)題詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Spring?Boot?Admin?添加報(bào)警提醒和登錄驗(yàn)證功能的具體實(shí)現(xiàn)

    Spring?Boot?Admin?添加報(bào)警提醒和登錄驗(yàn)證功能的具體實(shí)現(xiàn)

    報(bào)警提醒功能是基于郵箱實(shí)現(xiàn)的,當(dāng)然也可以使用其他的提醒功能,如釘釘或飛書(shū)機(jī)器人提醒也是可以的,但郵箱報(bào)警功能的實(shí)現(xiàn)成本最低,所以本文我們就來(lái)看郵箱的報(bào)警提醒功能的具體實(shí)現(xiàn)
    2022-01-01
  • SpringBoot集成Shiro進(jìn)行權(quán)限控制和管理的示例

    SpringBoot集成Shiro進(jìn)行權(quán)限控制和管理的示例

    這篇文章主要介紹了SpringBoot集成Shiro進(jìn)行權(quán)限控制和管理的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • SpringBoot集合Mybatis過(guò)程解析

    SpringBoot集合Mybatis過(guò)程解析

    這篇文章主要介紹了SpringBoot集合Mybatis過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java socket通訊實(shí)現(xiàn)過(guò)程及問(wèn)題解決

    Java socket通訊實(shí)現(xiàn)過(guò)程及問(wèn)題解決

    這篇文章主要介紹了Java socket通訊實(shí)現(xiàn)過(guò)程及問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • java中enum的用法

    java中enum的用法

    這篇文章主要介紹了java中enum的用法,包括了枚舉類(lèi)型的基本定義及用法分析,對(duì)于學(xué)習(xí)Java有著一定的學(xué)習(xí)與借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • Java正確使用訪(fǎng)問(wèn)修飾符的姿勢(shì)

    Java正確使用訪(fǎng)問(wèn)修飾符的姿勢(shì)

    訪(fǎng)問(wèn)修飾符是Java語(yǔ)法中很基礎(chǔ)的一部分,但是能正確的使用Java訪(fǎng)問(wèn)修飾符的程序員只在少數(shù),下面這篇文章主要給大家介紹了關(guān)于Java正確使用訪(fǎng)問(wèn)修飾符的姿勢(shì),需要的朋友可以參考下
    2021-11-11
  • 如何從eureka獲取服務(wù)的ip和端口號(hào)進(jìn)行Http的調(diào)用

    如何從eureka獲取服務(wù)的ip和端口號(hào)進(jìn)行Http的調(diào)用

    這篇文章主要介紹了如何從eureka獲取服務(wù)的ip和端口號(hào)進(jìn)行Http的調(diào)用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • springBoot整合jwt實(shí)現(xiàn)token令牌認(rèn)證的示例代碼

    springBoot整合jwt實(shí)現(xiàn)token令牌認(rèn)證的示例代碼

    實(shí)施Token驗(yàn)證的方法挺多的,還有一些標(biāo)準(zhǔn)方法,比如JWT,本文主要介紹了springBoot整合jwt實(shí)現(xiàn)token令牌認(rèn)證的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • Java 是如何讀取和寫(xiě)入瀏覽器Cookies的實(shí)例詳解

    Java 是如何讀取和寫(xiě)入瀏覽器Cookies的實(shí)例詳解

    這篇文章主要介紹了Java 是如何讀取和寫(xiě)入瀏覽器Cookies的實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • elasticsearch集群查詢(xún)超10000的解決方案

    elasticsearch集群查詢(xún)超10000的解決方案

    ES為了避免用戶(hù)的過(guò)大分頁(yè)請(qǐng)求造成ES服務(wù)所在機(jī)器內(nèi)存溢出,默認(rèn)對(duì)深度分頁(yè)的條數(shù)進(jìn)行了限制,默認(rèn)的最大條數(shù)是10000條,這篇文章主要給大家介紹了關(guān)于elasticsearch集群查詢(xún)超10000的解決方案,需要的朋友可以參考下
    2024-08-08

最新評(píng)論