1. 程式人生 > 實用技巧 >基本資料型別、型別轉換

基本資料型別、型別轉換

總結:

基本資料型別(瞭解)

  • 整數
    • byte、short、int、long
  • 浮點數
    • float、double
  • 字元
    • char
  • 布林
    • boolean

型別轉換(瞭解)

資料範圍小的賦值給資料範圍大的會自動轉換

資料範圍大的賦值給資料範圍小用括號括起來

大轉小會出現精度損失

一、資料型別

1. 計算機儲存單元

我們知道計算機是可以用來儲存資料的,但是無論是記憶體還是硬碟,計算機儲存裝置的最小資訊單元叫位(bit),我們又稱之為“位元位”,通常用小寫的字母“b”表示。而計算機中最基本的儲存單元叫位元組(byte)

通常用大寫字母“B”表示,位元組是由連續的8個位(bit)

組成。

除了位元組外還有一些常用的儲存單位,其換算單位如下:

1B(位元組) = 8bit(位)

1KB(千位元組)= 1024B

1MB (兆) = 1024KB

1GB(吉) = 1024MB

1TB(太) = 1024GB

2. 資料型別分類
  • Java是一個強型別語言,Java中的資料必須明確資料型別。
  • Java的資料型別分為兩大類:
    • 基本資料型別:整數浮點數字元布林
    • 引用資料型別:陣列介面
3. 基本資料型別

四類八種基本資料型別:

資料型別 關鍵字 記憶體佔用 取值範圍
整數型別
位元組型 byte 1位元組 -128 ~ 127
短整型 short 2位元組 -32768 ~ 32767
整型 int(預設) 4位元組 -2^31^ ~ 2^31^ -1
長整型 long 8位元組 -2^63^ ~ 2^63^ -1
浮點型別
單精度浮點型 float 4位元組 負數: -3.402823E+38~-1.401298E-45
正數: 1.401298E- 45 ~ 3.402823E+38
雙精度浮點型 double(預設) 8位元組 負數: -1.797693E+308~-4.9000000E-324
正數:4.9000000E-324 ~ 1.797693E + 308
字元型別 char 2位元組 0-65535
布林型別 boolean 1位元組 true,false

說明:

  • e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負45次方。

  • 在java中整數預設是int型別,浮點數預設是double型別。

二、型別轉換

在Java中,一些資料型別之間是可以相互轉換的。分為兩種情況:自動型別轉換和強制型別轉換。

1. 自動型別轉換

把一個表示資料範圍小的數值或者變數賦值給另一個表示資料範圍大的變數。這種轉換方式是自動的,直接書寫即可。

例如:

double num = 10; // 將int型別的10直接賦值給double型別
System.out.println(num); // 輸出10.0
2. 強制型別轉換

把一個表示資料範圍大的數值或者變數賦值給另一個表示資料範圍小的變數。

強制型別轉換格式
  • 目標資料型別 變數名 = (目標資料型別)值或者變數;

例如:

double num1 = 5.5;// 定義一個double型別的變數num1
int num2 = (int) num1; // 將double型別的num1強制轉換為int型別
System.out.println(num2); // 輸出5(小數位直接捨棄)

說明:

  • char型別的資料轉換為int型別是按照碼錶中對應的int值進行計算的。比如在ASCII碼錶中,'a'對應97。
int a = 'a';
System.out.println(a); // 將輸出97
  • 整數預設是int型別,byte、short和char型別資料參與運算均會自動轉換為int型別。
byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2; 
// 第三行程式碼會報錯,b1和b2會自動轉換為int型別,計算結果為int,int賦值給byte需要強制型別轉換。
// 修改為:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);
  • boolean型別不能與其他基本資料型別相互轉換。