java数据类型及其说明
Java數(shù)據(jù)類型及其說明
java基本數(shù)據(jù)類型:
java數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,基本數(shù)據(jù)類型就是4類8種,分為數(shù)值類型(整數(shù)型[byte,short,int,long]),字符型(char),布爾型(boolean)。引用數(shù)據(jù)類型(類,接口,數(shù)組)。
整數(shù)類型:
| 類型 | 字節(jié) | 占用存儲空間表數(shù)范圍 |
| byte | 1個字節(jié) | -128到127 |
| short | 2個字節(jié) | -2^15到(2^15)-1 |
| int | 4個字節(jié) | -2^31到(2^31)-1 |
| long? ?? | 8個字節(jié) | -2^63到(2^63)-1 |
浮點(diǎn)型:
| float? ? | 4個字節(jié) |
| double | 8個字節(jié) |
| ? | ? |
字符型:
| char | 1個字節(jié) |
<---------------------------------------------------------------------->
基本數(shù)據(jù)類型轉(zhuǎn)換:
? ?1、boolean類型與其他數(shù)據(jù)類型不可以相互轉(zhuǎn)化。
? ?2、整數(shù)型、字符型、浮點(diǎn)型的數(shù)據(jù)在混合運(yùn)算時相互轉(zhuǎn)換,遵循以下規(guī)則:
(1)、容量小的數(shù)據(jù)類型自動轉(zhuǎn)換為容量大的數(shù)據(jù)類型,數(shù)據(jù)類型按照容量大小排序?yàn)?#xff1a; ????????????????byte、short、char->int->long->float->double ? ? ? ? ? ? ? ? (bye,short,char之間不會相互轉(zhuǎn)化,他們?nèi)咴谟嬎銜r首先轉(zhuǎn)換為int類型。) |
| (2)、容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型時,要加上強(qiáng)制類型轉(zhuǎn)換符,但可能會造成精度降低或者溢出,使用時要格外注意。 |
| (3)、有多種類型的數(shù)據(jù)混合運(yùn)算時,系統(tǒng)首先將所有的數(shù)據(jù)類型轉(zhuǎn)換為容量最大的那一種類型,然后再進(jìn)行運(yùn)算 |
注意:實(shí)數(shù)類型常量默認(rèn)為double類型(3.14),若要設(shè)置為float類型,則要在常量后面加f(如3.14f);
? ? ? ? ? 整數(shù)類型常量默認(rèn)為int類型(如314),若要設(shè)置為long類型,則要在常量后面加L(如314L);
<----------------------------------------------------------------------------------->
疑惑?:看著這里你可能會有疑惑,long占據(jù)的存儲空間為8個字節(jié),float占據(jù)的存儲空間為4個,看起來long表示的數(shù)比float大,為什么在進(jìn)行混合運(yùn)算時,long類型要轉(zhuǎn)換為float類型,其實(shí),float可表示的數(shù)遠(yuǎn)比long大。下面來進(jìn)行解釋一下:(這涉及計算機(jī)組成原理的知識)
(一)定點(diǎn)數(shù)的表示方法
通常將數(shù)據(jù)表示成純小數(shù)或純整數(shù)。
(二)浮點(diǎn)數(shù)的表示方法:
在計算機(jī)中,一個任意進(jìn)制數(shù)N可以寫成:
N=R^E.M
其中M稱為浮點(diǎn)數(shù)的尾數(shù),是一個純小數(shù);E為浮點(diǎn)數(shù)的階碼(通俗的說就是科學(xué)計數(shù)法表示時的e的后面那個整數(shù)),是一個整數(shù);R是比例因子(幾進(jìn)制,通常為2、8、16),不需要在浮點(diǎn)數(shù)中表示出來。
一個浮點(diǎn)數(shù)在計算機(jī)中應(yīng)該由階碼(Exponent),尾數(shù)(mantissa)和符號位組成,按照IEEE標(biāo)準(zhǔn),常用的浮點(diǎn)數(shù)的格式表示為:如下
32位的float類型實(shí)數(shù),符號位為1位,階碼位8位,尾數(shù)為23位,如下:
64位的double類型實(shí)數(shù),符號位為1位,階碼位11位,尾數(shù)為52位,如下:
浮點(diǎn))數(shù)值 =????? 尾數(shù)??? ×??? 底數(shù) ^ 指數(shù),(附加正負(fù)號)
float的范圍為-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double的范圍為-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。?
總結(jié)
以上是生活随笔為你收集整理的java数据类型及其说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三十期:程序员报告:男性占比超87%
- 下一篇: 编程新手导论(转载)