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

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java基礎之隱式轉換vs強制轉換

Java基礎之隱式轉換vs強制轉換

2020-03-14 14:59mrr JAVA教程

這篇文章主要介紹了Java基礎之隱式轉換vs強制轉換的相關資料,需要的朋友可以參考下

Java中,經常可以遇到類型轉換的場景,從變量的定義到復制、數值變量的計算到方法的參數傳遞、基類與派生類間的造型等,隨處可見類型轉換的身影。Java中的類型轉換在Java編碼中具有重要的作用。

在定義變量時,有許多要注意的問題,一不小心就會出現損失精度或者不兼容類型等問題。

例如:

    1.定義長整型數據時,必須加后綴l或L

              long l =123456789012345L

    2.定義單精度類型時(7-8位有效數字),必須加后綴 f 或 F

              float f = 12.5F

          3. boolean類型不可以轉換為其它的數據類型。

這其中,我們常常會遇到數據類型的轉換問題,最為常見的要屬隱式轉換和強制轉換了,我們來分析一下。

隱式轉換

特征:

從小到大,可以隱式轉換,數據類型將自動提升。

byte,short,char -->int  -->long -->float -->double

注意:long是8個字節,float是4個字節。

long是整數,float是浮點型,整數和浮點數的存儲規則不一樣,記住一點long的范圍是小于float的。

例 :

byte a=10;
int b=a;

當編譯intb=a 時,  a隱式轉換為int類型。

強制轉換

特征:

     從大到小(如果你明確知道數據是可以用該數據類型來表示的,可以用強制轉換)

格式:

    (轉換后的數據類型)變量或者值。

注:一般情況下,根本不推薦使用強制類型轉換。

           例1 :

?
1
2
int a=10;
byte b=(byte)a;

當編譯 byte b=(byte)a時, a被強制轉換為byte類型。

例2:

?
1
2
3
4
5
6
7
8
class QiangZhiDemo
{
  public static void main(String[] args)
  {
    byte b=(byte)130;
    System.out.println(b); //打印結果-126
  }  
}

解析:

數據130默認的是int類型的十進制數據,

第一步:十進制130轉換成二進制數據。

  10000010

第二步:130在內存中的表示形式如下

原碼:0000000000000000 00000000 10000010

第三步:求int130的補碼

因為130是正數,所以,反碼和補碼都和原碼一致。

補碼:0000000000000000 00000000 10000010

第四步:對補碼進行截取,只剩下最后8位。

(byte)130 的補碼為:10000010

第五步:把該補碼轉化為原碼。

由于符號位(第一位)是1,故該數為負數,

反碼:10000001     (補碼-1)

原碼:11111110     (符號位不變,數據位取反)

轉化為十進制為 -126,所以最終打印-126。

     例3 :

?
1
2
shorts = 1;
s= s +1;

?
1
2
shorts = 1;
s+=1;

有問題嗎?為什么呢?

     解析:

第一程序會報錯:錯誤:不兼容的類型:從int轉換到short可能會有損失     

原因:s=s+1;s+1會隱式轉換為int類型,當把一個int類型賦值給short類型是,可能會損失。

第二個程序可以編譯運行。    

原因:s+=1,雖然可以看做s=s+1,但是還是有區別的,s+=1中有一個強制轉換,即s=(short)(s+1),會把s+1的值強制轉換為short類型,故不會報錯。

小結:

數據類型轉換的問題如果發生在一些小程序上,我們或許能夠一眼看出,可是當編寫一個龐大的系統時,擁有龐大數據量時,這些小小的問題可能導致系統出錯甚至崩潰,所以前期代碼編寫的嚴謹性就得靠我們自己把握了。

以上內容給大家介紹了Java基礎之隱式轉換vs強制轉換,希望大家喜歡。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色愉拍亚洲偷自拍 | 日本免费一区二区三区四区五六区 | 91porn最新网址 | 好大好硬好紧太深了受不了 | 午夜视频网站 | 赤色疑惑| 日本javhd| 午夜dj影院在线视频观看完整 | 免费免费啪视频在线观播放 | 日韩在线二区全免费 | 福利一区二区在线观看 | 视频在线视频免费观看 | 美女沟厕撒尿全过程高清图片 | 无人影院在线播放视频 | 成年极品漫画在线观看 | 欧美三级不卡在线观线看高清 | 国产精品成人免费 | 国产精品久久久久久久福利院 | 视频二区 素人 欧美 日韩 | 黑人巨大和日本娇小中出 | china精品对白普通话 | 奇米影视欧美 | 色综合欧美色综合七久久 | 午夜一区二区福利视频在线 | 交换朋友夫妇3中文字幕 | 99视频九九精品视频在线观看 | 粉嫩国产14xxxxx0000 | 激情视频激情小说 | 成年视频在线观看免费 | 美女免费观看一区二区三区 | 9自拍视频在线观看 | 国产精品视频色拍拍 | 91这里只有精品 | gay 男同志被捆绑茎 | 精品一区二区三区高清免费不卡 | 四虎永久成人免费 | 饭冈加奈子在线播放观看 | 波多野结衣小说 | 睡男神的这件小事小说在线阅读 | 好 舒服 好 粗 好硬免费视频 | 人与善xuanwen在线400 |