溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型

發(fā)布時(shí)間:2020-10-10 18:49:27 來(lái)源:腳本之家 閱讀:164 作者:工匠初心 欄目:編程語(yǔ)言

前言

自從Java發(fā)布以來(lái),基本數(shù)據(jù)類型就是Java語(yǔ)言的一部分,分別是byte, short, int, long, char, float, double, boolean.

其中:

整型:byte, short, int, long

字符型:char

浮點(diǎn)型:float, double

布爾型:boolean

在詳細(xì)介紹之前,先科普一下,Java中最小的計(jì)算單元為字節(jié),1字節(jié)=8位(bit)。

一. 整型

Java中整型數(shù)據(jù)屬于有符號(hào)數(shù),即第一個(gè)bit位為0表示正整數(shù),第一個(gè)bit位為1表示負(fù)整數(shù)。在計(jì)算機(jī)中負(fù)數(shù)由補(bǔ)碼進(jìn)行表示,那么補(bǔ)碼如何計(jì)算呢?

補(bǔ)碼=源碼取反 + 1;

如:

22,在計(jì)算機(jī)中的表示為00010110,

-22,取反:11101001,加1:11101010

byte

byte屬于Java中的整型,長(zhǎng)度為1字節(jié)8bit,取值10000000(-128)到 01111111(127),變量初始化默認(rèn)值為0,包裝類Byte

short

short屬于Java中的整型,長(zhǎng)度為2字節(jié)16bit,取值10000000 00000000(-32768)到 01111111 11111111(32767),變量初始化默認(rèn)值為0,包裝類Short

int

int屬于Java中的整型,長(zhǎng)度為4字節(jié)32bit,取值-2^31 (-2,147,483,648)到 2^31-1(2,147,483,647),變量初始化默認(rèn)值為0,包裝類Integer

long

long屬于Java中的整型,長(zhǎng)度為8字節(jié)64bit,取值-2^63 (-9,223,372,036,854,775,808‬)到 2^63-1(9,223,372,036,854,775,8087),變量初始化默認(rèn)值為0或0L,包裝類Long

二. 浮點(diǎn)型

Java中浮點(diǎn)型數(shù)據(jù)無(wú)法由二進(jìn)制直接表示,而是一種對(duì)于實(shí)數(shù)的近似數(shù)據(jù)表示法,它遵循IEEE 754標(biāo)準(zhǔn)

float

float屬于Java中的浮點(diǎn)型,也叫單精度浮點(diǎn)型,長(zhǎng)度為4字節(jié)32bit,變量初始化默認(rèn)值0.0f,包裝類Float

1. float結(jié)構(gòu)

包含三部分:符號(hào)位、指數(shù)位、尾數(shù)位

符號(hào)位(S) 指數(shù)位(E) 尾數(shù)位(M)
長(zhǎng)度 1bit 8bit 23bit
說(shuō)明 0表示正數(shù),1表示負(fù)數(shù) 格式為Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型,E值范圍:(0,255),指數(shù)位取值:(Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型 形式為1.M或0.M。其中當(dāng)E=0時(shí),取1.M,稱為正規(guī)形式,當(dāng)E!= 0時(shí),取0.M,稱為非正規(guī)形式

2. float取值

正規(guī)形式:Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型

非正規(guī)形式:Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型

根據(jù)上面公式很容易計(jì)算出float的取值范圍為:

Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型
(最小值,當(dāng)符號(hào)位S取1,指數(shù)位E取255)

Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型
(最大值,當(dāng)符號(hào)位S取0,指數(shù)位E取255)

能取到其間的近似數(shù)據(jù)。

注意:根據(jù)指數(shù)位和尾數(shù)位的取值不同,還有很多特殊情況,如NAN,正無(wú)窮,負(fù)無(wú)窮,但平時(shí)基本不會(huì)用到,這里不再深入;同時(shí)由于是近似值,因此無(wú)法表示金額,表示金額建議使用BigDecimal

double

double屬于Java中的浮點(diǎn)型,也叫雙精度浮點(diǎn)型,長(zhǎng)度為8字節(jié)64bit,變量初始化默認(rèn)值0.0d,包裝類Double

1. double結(jié)構(gòu)

包含三部分:符號(hào)位、指數(shù)位、尾數(shù)位

符號(hào)位(S) 指數(shù)位(E) 尾數(shù)位(M)長(zhǎng)度1bit11bit52bit說(shuō)明0表示正數(shù),1表示負(fù)數(shù)格式為Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型,E值范圍:(0,2047),指數(shù)位取值:(Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型,Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型)形式為1.M或0.M。其中當(dāng)E=0時(shí),取1.M,稱為正規(guī)形式,當(dāng)E!= 0時(shí),取0.M,稱為非正規(guī)形式2. double取值

正規(guī)形式:Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型

非正規(guī)形式:Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型

根據(jù)上面公式很容易計(jì)算出double的取值范圍為:

Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型
(最小值,當(dāng)符號(hào)位S取1,指數(shù)位E取2047)

Java基礎(chǔ)教程之八大基本數(shù)據(jù)類型
(最大值,當(dāng)符號(hào)位S取0,指數(shù)位E取2047)

能取到其間的近似數(shù)據(jù)。

注意:根據(jù)指數(shù)位和尾數(shù)位的取值不同,還有很多特殊情況,如NAN,正無(wú)窮,負(fù)無(wú)窮,但平時(shí)基本不會(huì)用到,這里不再深入;同時(shí)由于是近似值,因此無(wú)法表示金額,表示金額建議使用BigDecimal

三. 字符型char

char屬于java中的字符型,占2字節(jié)16bit,可以賦值單字符以及整型數(shù)值, 變量初始化無(wú)默認(rèn)值,包裝類Character。

如:

char a = 'a';

char a = '中';

char a = 12; // 取值范圍0~65536,因?yàn)閏har類型在ASCII字符編碼中,有對(duì)應(yīng)的數(shù)值,可直接做運(yùn)算,輸出字符表中對(duì)應(yīng)的字符

四. 布爾型

boolean

在JVM中并沒(méi)有提供boolean專用的字節(jié)碼指令,而boolean類型數(shù)據(jù)在經(jīng)過(guò)編譯后在JVM中會(huì)通過(guò)int類型來(lái)表示,此時(shí)boolean數(shù)據(jù)4字節(jié)32位,而boolean數(shù)組將會(huì)被編碼成Java虛擬機(jī)的byte數(shù)組,此時(shí)每個(gè)boolean數(shù)據(jù)1字節(jié)占8bit.

--Java虛擬機(jī)規(guī)范

僅有兩個(gè)值true, false,變量初始化默認(rèn)值false

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI