中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java基礎教程之八大基本數據類型

發布時間:2020-10-10 18:49:27 來源:腳本之家 閱讀:165 作者:工匠初心 欄目:編程語言

前言

自從Java發布以來,基本數據類型就是Java語言的一部分,分別是byte, short, int, long, char, float, double, boolean.

其中:

整型:byte, short, int, long

字符型:char

浮點型:float, double

布爾型:boolean

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

一. 整型

Java中整型數據屬于有符號數,即第一個bit位為0表示正整數,第一個bit位為1表示負整數。在計算機中負數由補碼進行表示,那么補碼如何計算呢?

補碼=源碼取反 + 1;

如:

22,在計算機中的表示為00010110,

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

byte

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

short

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

int

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

long

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

二. 浮點型

Java中浮點型數據無法由二進制直接表示,而是一種對于實數的近似數據表示法,它遵循IEEE 754標準

float

float屬于Java中的浮點型,也叫單精度浮點型,長度為4字節32bit,變量初始化默認值0.0f,包裝類Float

1. float結構

包含三部分:符號位、指數位、尾數位

符號位(S) 指數位(E) 尾數位(M)
長度 1bit 8bit 23bit
說明 0表示正數,1表示負數 格式為Java基礎教程之八大基本數據類型,E值范圍:(0,255),指數位取值:(Java基礎教程之八大基本數據類型Java基礎教程之八大基本數據類型 形式為1.M或0.M。其中當E=0時,取1.M,稱為正規形式,當E!= 0時,取0.M,稱為非正規形式

2. float取值

正規形式:Java基礎教程之八大基本數據類型

非正規形式:Java基礎教程之八大基本數據類型

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

Java基礎教程之八大基本數據類型
(最小值,當符號位S取1,指數位E取255)

Java基礎教程之八大基本數據類型
(最大值,當符號位S取0,指數位E取255)

能取到其間的近似數據。

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

double

double屬于Java中的浮點型,也叫雙精度浮點型,長度為8字節64bit,變量初始化默認值0.0d,包裝類Double

1. double結構

包含三部分:符號位、指數位、尾數位

符號位(S) 指數位(E) 尾數位(M)長度1bit11bit52bit說明0表示正數,1表示負數格式為Java基礎教程之八大基本數據類型,E值范圍:(0,2047),指數位取值:(Java基礎教程之八大基本數據類型Java基礎教程之八大基本數據類型)形式為1.M或0.M。其中當E=0時,取1.M,稱為正規形式,當E!= 0時,取0.M,稱為非正規形式2. double取值

正規形式:Java基礎教程之八大基本數據類型

非正規形式:Java基礎教程之八大基本數據類型

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

Java基礎教程之八大基本數據類型
(最小值,當符號位S取1,指數位E取2047)

Java基礎教程之八大基本數據類型
(最大值,當符號位S取0,指數位E取2047)

能取到其間的近似數據。

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

三. 字符型char

char屬于java中的字符型,占2字節16bit,可以賦值單字符以及整型數值, 變量初始化無默認值,包裝類Character。

如:

char a = 'a';

char a = '中';

char a = 12; // 取值范圍0~65536,因為char類型在ASCII字符編碼中,有對應的數值,可直接做運算,輸出字符表中對應的字符

四. 布爾型

boolean

在JVM中并沒有提供boolean專用的字節碼指令,而boolean類型數據在經過編譯后在JVM中會通過int類型來表示,此時boolean數據4字節32位,而boolean數組將會被編碼成Java虛擬機的byte數組,此時每個boolean數據1字節占8bit.

--Java虛擬機規范

僅有兩個值true, false,變量初始化默認值false

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建水县| 台东县| 沙田区| 云林县| 安福县| 济源市| 当涂县| 囊谦县| 武安市| 兴国县| 堆龙德庆县| 三明市| 贵阳市| 东丰县| 桂东县| 天等县| 合川市| 河北省| 江陵县| 晋中市| 大埔区| 璧山县| 土默特左旗| 项城市| 通辽市| 依安县| 潮安县| 衡阳市| 柳林县| 文水县| 随州市| 宁蒗| 五家渠市| 滁州市| 洮南市| 广州市| 文水县| 巩义市| 渝北区| 郧西县| 溆浦县|