Java數據類型及其說明
java基本數據類型:
java數據類型分為基本數據類型和引用數據類型,基本數據類型就是4類8種,分為數值類型(整數型[byte,short,int,long]),字符型(char),布爾型(boolean)。引用數據類型(類,接口,數組)。
整數類型:
類型 | 字節 | 占用存儲空間表數范圍 |
byte | 1個字節 | -128到127 |
short | 2個字節 | -2^15到(2^15)-1 |
int | 4個字節 | -2^31到(2^31)-1 |
long? ?? | 8個字節 | -2^63到(2^63)-1 |
浮點型:
float? ? | 4個字節 |
double | 8個字節 |
? | ? |
字符型:
char | 1個字節 |
<---------------------------------------------------------------------->
基本數據類型轉換:
? ?1、boolean類型與其他數據類型不可以相互轉化。
? ?2、整數型、字符型、浮點型的數據在混合運算時相互轉換,遵循以下規則:
(1)、容量小的數據類型自動轉換為容量大的數據類型,數據類型按照容量大小排序為: ????????????????byte、short、char->int->long->float->double ? ? ? ? ? ? ? ? (bye,short,char之間不會相互轉化,他們三者在計算時首先轉換為int類型。) |
(2)、容量大的數據類型轉換為容量小的數據類型時,要加上強制類型轉換符,但可能會造成精度降低或者溢出,使用時要格外注意。 |
(3)、有多種類型的數據混合運算時,系統首先將所有的數據類型轉換為容量最大的那一種類型,然后再進行運算 |
注意:實數類型常量默認為double類型(3.14),若要設置為float類型,則要在常量后面加f(如3.14f);
? ? ? ? ? 整數類型常量默認為int類型(如314),若要設置為long類型,則要在常量后面加L(如314L);
<----------------------------------------------------------------------------------->
疑惑?:看著這里你可能會有疑惑,long占據的存儲空間為8個字節,float占據的存儲空間為4個,看起來long表示的數比float大,為什么在進行混合運算時,long類型要轉換為float類型,其實,float可表示的數遠比long大。下面來進行解釋一下:(這涉及計算機組成原理的知識)
(一)定點數的表示方法
通常將數據表示成純小數或純整數。
(二)浮點數的表示方法:
在計算機中,一個任意進制數N可以寫成:
N=R^E.M
其中M稱為浮點數的尾數,是一個純小數;E為浮點數的階碼(通俗的說就是科學計數法表示時的e的后面那個整數),是一個整數;R是比例因子(幾進制,通常為2、8、16),不需要在浮點數中表示出來。
一個浮點數在計算機中應該由階碼(Exponent),尾數(mantissa)和符號位組成,按照IEEE標準,常用的浮點數的格式表示為:如下
32位的float類型實數,符號位為1位,階碼位8位,尾數為23位,如下:
64位的double類型實數,符號位為1位,階碼位11位,尾數為52位,如下:
浮點)數值 =????? 尾數??? ×??? 底數 ^ 指數,(附加正負號)
float的范圍為-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范圍為-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。?