Java - 基礎數據類型


前言

直接搬別人的筆記了,只做排版梳理,可能會加一點自己見解

 

Java的數據類型

  • 基礎數據類型
  • 引用類型:除了基礎數據類型剩下都是引用類型

 

Java 中的幾種基本數據類型是什么?

Java 中有 8 種基本數據類型

  • 6 種數字類型 :byteshortintlongfloatdouble
  • 1 種字符類型:char
  • 1 種布爾型:boolean

 

位(bit)

是計算機 內部數據 儲存的最小單位,11001100是一個八位二進制數

 

字節(byte)

  • 是計算機中 數據處理 的基本單位,習慣上用大寫B來表示
  • 1Byte(字節) = 8bit(位)
  • 1bit 表示1位
  • 1024B = 1KB
  • 1024KB = 1M
  • 1024M = 1G

 

字符

是指計算機中使用的字母、數字、字和符號

 

各自占用多少字節呢?

這 8 種基本數據類型的默認值以及所占空間的大小如下:

基本類型 位數 字節 默認值
int 32 4 0
short 16 2 0
long 64 8 0L
byte 8 1 0
char 16 2 'u0000'
float 32 4 0f
double 64 8 0d
boolean 1   false

另外,對於 boolean,官方文檔未明確定義,它依賴於 JVM 廠商的具體實現。邏輯上理解是占用 1 位,但是實際中會考慮計算機高效存儲因素

 

基礎類型注意點

  1. Java 里使用 long 類型的數據一定要在數值后面加上 L,否則將作為整型解析
  2.  char a = 'h'  char 用單引號, String a = "hello" String 用雙引號
  3. String 不是基礎數據類型,是引用類型

 

整型中 byte、short、int、long 的取值范圍

  • byte:byte用 1 個字節來存儲,范圍為 -128(-2^7) 到 127(2^7-1),在變量初始化的時候,byte 類型的默認值為 0
  • short:short用 2 個字節存儲,范圍為-32,768 (-2^15) 到 32,767 (2^15-1),在變量初始化的時候,short 類型的默認值為 0,一般情況下,因為Java本身轉型的原因,可以直接寫為 0
  • int:int用 4 個字節存儲,范圍為-2,147,483,648 (-2^31) 到 2,147,483,647 (2^31-1),在變量初始化的時候,int 類型的默認值為 0
  • long:long用 8 個字節存儲,范圍為-9,223,372,036,854,775,808 (-2^63) 到 9,223,372,036, 854,775,807 (2^63-1),在變量初始化的時候,long類型的默認值為 0L 或 0l,也可直接寫為 0

 

類型轉換

由於 Java 是強類型語言,所有需要有些運算的時候的,需要用到類型轉換。

低 --------------------------------------->高

byte, short, char -> int -> long -> float -> double

​ (小數的優先級高於整數)

  • 運算中,不同類型的數據先轉換為同一類型,然后進行運算
  • 強制類型轉換,優先級 高 轉 低
  • 這個后面專門的文章來講解

  

自動類型轉換

由低到高直接輸入,無需強制轉換

 

轉換注意

  • 不能對布爾值進行轉換
  • 不能把對象類型轉換為不相干的類型
  • 在把高容量轉換到低容量的時候,需要強制轉換
  • 轉換的時候可能存在內存溢出,或者精度問題!

 

各自的對應的包裝類是什么?

 

基本類型 包裝類型
int Integer
short Short
long Long
byte Byte
char Character
float Float
double Double
boolean Boolean

 

基礎類型和包裝類型注意點

  • 包裝類型不賦值就是 Null 
  • 而基本類型有默認值所以不是 Null

 

單精度、雙精度

  • 單精度浮點數(float)在計算機存儲器中占用 4 個字節(32 bits),利用“浮點”(浮動小數點)的方法,可以表示一個范圍很大的數值
  • 比起單精度浮點數,雙精度浮點數(double)使用 64 位(8字節) 來存儲一個浮點數

 

浮點數拓展

  • float; double 不夠准確
  • 實際過程中浮點數無限且離散的,但是float是有限的,他會自動舍入誤差,大約接近,但不等於
  • 銀行等准確的計算工具最好使用BigDecimal 數學工具類

精確的對賬最好完全避免使用浮點數進行比較

精確的對賬最好完全避免使用浮點數進行比較

精確的對賬最好完全避免使用浮點數進行比較


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM