天天看點

java中double類型占幾個位元組_Java基本資料類型占用位元組數

在Java中有八大基本資料類型

(1)整型

int :整數類型

short :短整型

long :長整型

byte :位元組類型

(2)浮點型

float :浮點類型(單精度)

double :浮點類型(雙精度)

(3)邏輯型

boolean :布爾型

(4)字元型

char :字元型

基本資料類型自動轉換

byte -> short

char -> int -> long

float -> double

int -> float

long -> double

低資料類型可以直接指派給高資料類型,反之,高資料類型轉換為低資料類型必須強轉,即提前制定資料類型,例 int a = (int) 5.0F

Java 8大基本類型所占位元組數(或 bit 數)

類型 存儲需求 bit 數 取值範圍 備注

int 4位元組 48 -2147483648~2147483647 即 (-2)的31次方 ~ (2的31次方) - 1

short 2位元組 28 -32768~32767 即 (-2)的15次方 ~ (2的15次方) - 1

long 8位元組 88 即 (-2)的63次方 ~ (2的63次方) - 1

byte 1位元組 18 -128~127 即 (-2)的7次方 ~ (2的7次方) - 1

float 4位元組 48 float 類型的數值有一個字尾 F(例如:3.14F)

double 8位元組 88 沒有字尾 F 的浮點數值(例如:3.14)預設為 double

boolean 1位元組 18 true、false

char 2位元組 28 Java中,隻要是字元,不管是數字還是英文還是漢字,都占兩個位元組。

至于為什麼 Java 中 char 無論中英文數字都占用2位元組,是因為 Java 中使用 Unicode 字元,所有字元均以2個位元組存儲。

而如果需要識别字元是否為中文,可以使用正則比對式:

String _regex = "[\\u4e00-\\u9fa5]";

補充

Java有一個能夠表示任意精度的算書包,通常稱為“大數值”(big number)。雖然被稱為大數值,但它并不是一種Java類型,而是一個Java對象。

如果基本的整數和浮點數精度不能夠滿足需求,那麼可以使用java.math包中的兩個很有用的類:BigInteger、BigDecimal(Android SDK中也包含了java.math包以及這兩個類)這兩個類可以處理包含任意長度數字序列的數值。BigInteger類實作了任意精度的整數運算,BigDecimal實作了任意精度的浮點數運算。具體的用法可以參見Java API。

現在金融類産品大熱,建議金融類 App 的工程師在開發初期就直接使用 BigDecimal 資料對象來記錄金融資料。