摘要:說基本數據類型轉換之前,先了解下中的種基本數據類型,以及它們的占內存的容量大小和表示的范圍,如下圖所示。自動類型轉換自動類型轉換是指數字表示范圍小的數據類型可以自動轉換成范圍大的數據類型。
說基本數據類型轉換之前,先了解下 Java 中的 8 種基本數據類型,以及它們的占內存的容量大小和表示的范圍,如下圖所示。
重新溫故了下原始數據類型,現在來解釋下它們之間的轉換關系。
自動類型轉換自動類型轉換是指:數字表示范圍小的數據類型可以自動轉換成范圍大的數據類型。
如:
long l = 100; int i = 200; long ll = i;
具體自動轉換如如下圖所示。
實線表示自動轉換時不會造成數據丟失,虛線則可能會出現數據丟失問題。
自動轉換也要小心數據溢出問題,看下面的例子。
int count = 100000000; int price = 1999; long totalPrice = count * price;
編譯沒任何問題,但結果卻輸出的是負數,這是因為兩個 int 相乘得到的結果是 int, 相乘的結果超出了 int 的代表范圍。這種情況,一般把第一個數據轉換成范圍大的數據類型再和其他的數據進行運算。
int count = 100000000; int price = 1999; long totalPrice = (long) count * price;
另外,向下轉換時可以直接將 int 常量字面量賦值給 byte、short、char 等數據類型,而不需要強制轉換,只要該常量值不超過該類型的表示范圍都能自動轉換。
強制類型轉換強制類型轉換我們再清楚不過了,即強制顯示的把一個數據類型轉換為另外一種數據類型。
如:
short s = 199; int i = s;// 199 double d = 10.24; long ll = (long) d;// 10
以上的轉換結果都在我們的預期之內,屬于正常的轉換和丟失精度的情況,下面的例子就一樣屬于數據溢出的情況。
int ii = 300; byte b = (byte)ii;
300 已經超出了 byte 類型表示的范圍,所以會轉換成一個毫無意義的數字。
類型提升所謂類型提升就是指在多種不同數據類型的表達式中,類型會自動向范圍表示大的值的數據類型提升。
把上面的溢出的例子再改下。
long count = 100000000; int price = 1999; long totalPrice = price * count;
price 為 int 型,count 為 long 型,運算結果為 long 型,運算結果正常,沒有出現溢出的情況。
推薦:Spring Boot & Cloud 最強技術教程
掃描關注我們的微信公眾號,干貨每天更新。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71266.html
摘要:基本類型包括類型和數值類型。基本類型的類型轉換當把一個表數范圍小的數值或變量直接賦給另一個表數范圍大的變量時,系統可以進行自動類型轉換。整個算術表達式的數據類型自動提升到與表達式中最高等級操作數同樣的類型 數據類型分類 Java語言是強類型語言,意思是每個變量和每個表達式都有一個在編譯時就確定的類型,所以所有變量必須顯示聲明類型,也就是說,所有的變量必須先聲明,后使用。Java語言支持...
摘要:基本數據類型布爾類型或,占用位。強制類型轉換強制類型轉換的語法格式是,強制類型轉換的運算符是圓括號。無符號右移運算符。對于低于類型如和的操作數總是先自動類型轉換為類型后再移位。 注釋 單行注釋//......多行注釋/ .../文檔注釋/*.../ 文檔注釋位于注釋內容上一行 標識符和關鍵字 分隔符 分號:作為語句的分隔,每個Java語句必須使用分號作為結尾。花括號:定義一個代碼...
摘要:所以就想把一大串縮短點,將二進制中的三位用一位表示。以可以大寫也可以小寫開頭版本可以表示二進制了八進制的數據表現形式由組成。結果把系數基數的權次冪相加即可。因為語言采用的是碼來編碼的。 1_(常量的概述和使用)* A:什么是常量(constant) 在程序執行的過程中其值不可以發生改變 B:Java中常量的分類 字面值常量 自定義常量(面向對象部分講) C:字面值常量的...
摘要:局部變量聲明在函數內部的變量。在作用域范圍內不能出現命名沖突。 java編程規范: 1.良好的標識符的命名 保留字不能作為標識符命名: class、public、static..., goto,const 區分大小寫:helloWorld、HelloWorld 2.良好的注釋習慣 3.良好的縮進:沒遇到一個代碼塊縮進一次(一個tab鍵) 變量:代...
摘要:強制類型轉換下標運算符變量與常量常量是在程序中的不會變化的數據變量其實就是內存中的一個存儲空間,用于存儲數據。表示結束本次循環,繼續下次循環。 Java知識點總結 (基本語法) @(Java知識點總結)[Java, Java基本語法] @(Java開發)[Java基本語法] [toc] Java特點 簡單自然平臺可移植性支持函數式編程JIT 編譯更好的并發編程健壯安全 執行方式 編譯...
閱讀 2810·2019-08-30 15:55
閱讀 2857·2019-08-30 15:53
閱讀 2294·2019-08-26 13:47
閱讀 2557·2019-08-26 13:43
閱讀 3154·2019-08-26 13:33
閱讀 2802·2019-08-26 11:53
閱讀 1796·2019-08-23 18:35
閱讀 798·2019-08-23 17:16