一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - 詳解解密Java中的類型轉換問題

詳解解密Java中的類型轉換問題

2021-07-24 15:07bddylww Java教程

這篇文章主要介紹了Java中的類型轉換問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

眾所周知java中的數(shù)據(jù)類型是強數(shù)據(jù)類型,基本數(shù)據(jù)類型之間的轉換尤其固定的規(guī)則,當數(shù)據(jù)寬度比較窄的數(shù)據(jù)類型(如int)轉換成數(shù)據(jù)類型比較寬的數(shù)據(jù)類型時(如double),則窄的數(shù)據(jù)類型會加寬,可以完成自動類型轉換,這稱為隱式轉換。

如:以下代碼沒有任何問題,結果也是正確的,成績不會發(fā)生變化,所不同的是成績的精度提高了。

?
1
2
intintscore = 96;
doubledoublescore = intscore;

那么如果試圖把寬的數(shù)據(jù)類型(如double)轉換成窄的數(shù)據(jù)類型(如float)時,編譯器會提示編譯錯誤,想要編譯通過,需要進行強制類型轉換。那么,此時的數(shù)據(jù)會發(fā)生截斷。產(chǎn)生的結果是:

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

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

對于上述第1種情況,比較好理解,我們來看個例子:

?
1
2
float floatweight= 63.5; //編譯錯誤
double doubleweight= 63.5;

上述第一條語句會提示編譯錯誤,那是因為編譯器看到63.5時,會把它當做一個double類型,把一個double類型賦給float類型,當然編譯不通過了。推薦的解決方案是:

?
1
float floatweight = 63.5f;

當然,你也可以強制轉換成float類型:

?
1
float floatweight = (float)63.5;

其實,上述語句本質是把double類型的數(shù)據(jù)強制轉換成float類型,發(fā)生了截斷。雖然數(shù)據(jù)的大小沒有變化,但是數(shù)據(jù)的精度卻降低了。

同理:

?
1
2
doubleweight = floatweight; //隱式轉換
floatweight = (float)doubleweight;//強制轉換

現(xiàn)在,問題來了,既然是截斷,怎么會產(chǎn)生溢出呢?我們先來看個例子:

?
1
2
3
4
5
6
shorti = 150;
shortj = 75;
byteb = (byte) i;
byted = (byte) j;
system.out.println("b = " + b);
system.out.println("d = " + d);

以上代碼的輸出結果是:

b = -106
d = 75

看到結果,不免會問為什么b=-106呢?這是因為強制轉換時發(fā)生溢出。由于150超出了byte能夠表示的最大范圍(-128 ~ 127)。

那么-106又是如何得來的呢?

i = 150,用二進制表示i = 0000 0000 1001 0110,short類型占2個字節(jié),16位,最高位的0表示正數(shù)。當把i強制轉換成byte類型時,高位發(fā)生截斷,i = 1001 0110。在計算機中,用補碼表示,最高位的1表示負數(shù),那么用原碼表示的話:i = 1110 1010,正好表示十進制數(shù)-106。

至此,也就解釋了為什么截斷也可能會發(fā)生溢出。

以上所述是小編給大家介紹的java中的類型轉換問題詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網(wǎng)站的支持!

原文鏈接:https://blog.51cto.com/weiweili/1901017

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 护士xxxx | zozo日本另类极品 | 丰满岳乱妇在线观看视频国产 | 四虎最新免费观看网址 | 2022国产麻豆剧传媒古装 | 美女岳肉太深了使劲 | 色姑娘导航 | 丰满肥臀风间由美357在线 | 亚洲成片在线看 | 99色在线视频 | h版在线观看 | 96萝莉| 久久国产伦子伦精品 | 96av视频在线观看 | 国产图片综合区 | 青青青在线观看国产精品 | 乳女教师欲乱动漫无修版动画3d | 女子监狱第二季未删减在线看 | 深夜福利免费在线观看 | 午夜精品久久久久久久99 | 久久电影午夜 | 亚洲成人黄色网址 | 明星ai人脸替换造梦在线播放 | 小早川怜子在线播放精品 | 免费看美女被靠到爽的视频 | 欧美大片一区 | 亚洲精品久久啪啪网站成年 | 好涨好爽好大视频免费 | 爽好舒服把腿张小说 | 人人爽人人草 | 国产靠逼视频 | 午夜精品亚洲 | 91porny新九色在线 | 丝瓜视频看污片 | 国内免费高清视频在线观看 | 极品久久 | 丝袜足控免费网站xx动漫漫画 | 日本最新伦中文字幕 | 99av导航| 国产高清一区二区三区免费视频 | 免费又爽又黄禁片视频在线播放 |