av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Java中的基本數(shù)據(jù)類型轉換(自動、強制、提升)

說基本數(shù)據(jù)類型轉換之前,先了解下 Java 中的 8 種基本數(shù)據(jù)類型,以及它們的占內存的容量大小和表示的范圍,如下圖所示。

成都創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設公司,專注網(wǎng)站建設、網(wǎng)站設計,有關企業(yè)網(wǎng)站設計方案、改版、費用等問題,行業(yè)涉及廣告制作等多個領域,已為上千家企業(yè)服務,得到了客戶的尊重與認可。

重新溫故了下原始數(shù)據(jù)類型,現(xiàn)在來解釋下它們之間的轉換關系。

自動類型轉換

自動類型轉換是指:數(shù)字表示范圍小的數(shù)據(jù)類型可以自動轉換成范圍大的數(shù)據(jù)類型。

如:

 
 
 
  1. long l = 100;  
  2. int i = 200;  
  3. long ll = i; 

 

具體自動轉換如如下圖所示。

實線表示自動轉換時不會造成數(shù)據(jù)丟失,虛線則可能會出現(xiàn)數(shù)據(jù)丟失問題。

自動轉換也要小心數(shù)據(jù)溢出問題,看下面的例子。

 
 
 
  1. int count = 100000000;  
  2. int price = 1999;  
  3. long totalPrice = count *  
  4. price; 

 

編譯沒任何問題,但結果卻輸出的是負數(shù),這是因為兩個 int 相乘得到的結果是 int, 相乘的結果超出了 int 的代表范圍。這種情況,一般把***個數(shù)據(jù)轉換成范圍大的數(shù)據(jù)類型再和其他的數(shù)據(jù)進行運算。

 
 
 
  1. int count = 100000000;  
  2. int price = 1999;  
  3. long totalPrice = (long) count * price; 

 

另外,向下轉換時可以直接將 int 常量字面量賦值給 byte、short、char 等數(shù)據(jù)類型,而不需要強制轉換,只要該常量值不超過該類型的表示范圍都能自動轉換。

強制類型轉換

強制類型轉換我們再清楚不過了,即強制顯示的把一個數(shù)據(jù)類型轉換為另外一種數(shù)據(jù)類型。

如:

 
 
 
  1. short s = 199;  
  2. int i = s; 
  3. // 199  
  4. double d = 10.24;  
  5. long ll = (long) d;  
  6. // 10 

 

以上的轉換結果都在我們的預期之內,屬于正常的轉換和丟失精度的情況,下面的例子就一樣屬于數(shù)據(jù)溢出的情況。

 
 
 
  1. int ii = 300;  
  2. byte b = (byte)ii; 

 

300 已經(jīng)超出了 byte 類型表示的范圍,所以會轉換成一個毫無意義的數(shù)字。

類型提升

所謂類型提升就是指在多種不同數(shù)據(jù)類型的表達式中,類型會自動向范圍表示大的值的數(shù)據(jù)類型提升。

把上面的溢出的例子再改下。

 
 
 
  1. long count = 100000000;  
  2. int price = 1999;  
  3. long totalPrice = price * count; 

 

price 為 int 型,count 為 long 型,運算結果為 long 型,運算結果正常,沒有出現(xiàn)溢出的情況。


當前題目:Java中的基本數(shù)據(jù)類型轉換(自動、強制、提升)
當前網(wǎng)址:http://uogjgqi.cn/article/dpopsgi.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流