天天看點

.dat檔案寫入byte類型數組_JAVA四類八種基本資料類型整型:整數類型浮點數booleanchar基本資料類型轉換最後

.dat檔案寫入byte類型數組_JAVA四類八種基本資料類型整型:整數類型浮點數booleanchar基本資料類型轉換最後

整型:整數類型

  • int    一般的資料
  • long    極大的資料
  • short   用于特定的場合,比如底層的檔案處理或者需要控制占用存儲單元空間量的大數組
  • byte   用于特定的場合,比如底層的檔案處理或者需要控制占用存儲單元空間量的大數組

byte、short、int、long都是整數類型,并且是有符号整數 分别占用1、2、4、8個位元組。

取值範圍分别是-128—127、-2的15次方到2的15次方減一、-2的31次方到2的31次方減一、-2的63次方到2的63次方減一 byte在記憶體中占用一個位元組 取值範圍是 -128—127。在定義一個變量時。比如月份的取值是1到12。是以把代表月份的month變量定義為byte類型會節省記憶體空間。

在實際應用中 通常把month定義為int類型,因為這樣可以簡化資料運算時強制類型轉換操作。

byte month = 1;month = month+2;//編譯錯誤 需要強轉month = (byte) (month+2); //編譯正确
           
.dat檔案寫入byte類型數組_JAVA四類八種基本資料類型整型:整數類型浮點數booleanchar基本資料類型轉換最後

浮點數

  • float    有效數字最長是7位
  • double    有效數字最長是15位

float:占四個位元組,共32位,稱為單精度浮點數

double:占八個位元組,共64位,稱為雙精度浮點數

Java中的浮點型常量數值預設是double類型

注意: java提供的浮點類型不适合進行精确的運算

public static void main(String[] args) throws Exception {    double money = 1;    double price = 0.1;    System.out.println(money-price*9);//列印出來0.09999999999999998(本應該是0.1)    }
           

解決辦法: java.math.BigDecimal類可以滿足使用者的精度 注意 構造BigDecimal類時 構造方法中的參數 不建議是浮點類型 需要轉成String類型

boolean

  • Boolean在記憶體中占用一個位元組。

當java編譯器把java源代碼編譯為位元組碼時,會用int或byte來表示boolean。在java虛拟機中,用整數零來表示false,用任意一個非零整數表示true。 java虛拟機這種底層處理方式對java虛拟機是透明的,在java源程式中boolean類型的變量取值隻能是true或false。

.dat檔案寫入byte類型數組_JAVA四類八種基本資料類型整型:整數類型浮點數booleanchar基本資料類型轉換最後

char

char是字元類型 占用兩個位元組,java語言對字元采用Unicode字元編碼。由于計算機記憶體隻能存儲二進制資料。是以必須對各個字元進行編碼。

所謂字元編碼是指用一串二進制資料來表示特定的字元。常見的字元編碼包括,ASCII編碼(1Byte=8bit 一共能表示2的7次方 128個字元) 是單位元組編碼系統,ISO-8859-1編碼(也是單位元組編碼系統) GB2312編碼 GBK編碼 Unicode編碼。

Unicode編碼由國際Unicode協會編制,收錄了全世界所有語言文字中的字元,是一種跨平台的字元編碼USC(Universal Character Set)是指采用Unicode編碼的通用字元集。

如果實際上要存儲的位元組都是ASCII字元(隻占7位),采用Unicode編碼及其浪費存儲空間。UTF-8編碼能夠更加有效的利用存儲空間,它對ASCII字元采用一個位元組形式的編碼,對非ASCII字元則采用兩個或兩個以上位元組形式的編碼。

Unicode有兩種編碼方案。

用兩個位元組(16位)編碼,采用這個編碼方案的字元集稱為UCS-2。java語言采用的就是兩個位元組的編碼方案

用四個位元組(32位)編碼(實際上隻用了31位,最高位必須為0),采用這個編碼的字元集被稱為UCS-4。

1994年公布的Unicode,為每種語音中的每個字元都設定了唯一編碼,以滿足跨語言的交流,分為編碼方式和實作方式。

實作Unicode的編碼格式 有UTF編碼。可以了解為對Unicode的壓縮方式,常見的UTF編碼有 utf-8,utf-7,utf-16

有些作業系統不完全支援16位或32位的Unicode編碼,UTF(UnicodeTransformation Format) 編碼能夠把Unicode編碼轉換為作業系統支援的編碼。

ASCII編碼,ISO-8859-1編碼 GB2312編碼 GBK編碼 Unicode編碼 都屬于編碼方式,UTF屬于實作方式(實作Unicode編碼)。

基本資料類型轉換

上面四類八種基本資料類型。除了boolean類型。整型 浮點型和字元型資料可以進行混合轉換。

從低位到高位會自動進行類型轉換,即int類型的數和Long類型的數一起運算時 結果會自動轉成Long類型(向上轉型)

從高位到低位需要進行強制類型轉換。(向下轉型)

從低位到高位 byte、char、short、int、long、float、double

float f = 3.14; //編譯錯誤,不能把double類型直接指派給float類型變量 需要強制類型轉換

應用中,強制類型轉換有可能會導緻資料溢出或者精度下降,應該避免使用強制類型轉換。

下面代碼中 把int強制轉換為byte類型,會導緻資料溢出。

int a = 256;byte aa = (byte) a;int b = 222;byte bb = (byte) b;System.out.println(aa); // 列印結果0System.out.println(bb); //列印結果-34
           

對于基本類型的變量,java虛拟機會為其配置設定資料類型實際占用記憶體的大。

最後

如果覺得文章不錯,對你幫助,記得給我點個贊~另外需要Java入門全套視訊,可以關注我然後私我關鍵字【Java】~

繼續閱讀