java基礎之8種基本數據類型


簡單往往是最重要的,在剛剛學java的時候老師會給我們先講這8種基本數據類型,今天再來做一個溫習,【本文大部分參考了 https://zhuanlan.zhihu.com/p/25439066,在上面做了一點補充】

  • 根據java的數據類型分類

1、整型

  byte 、short 、int 、long

2、浮點型

  float 、 double

3、字符型

  char

4、布爾型

  boolean

  • 8種基本數據類型
數據類型名稱   占用字節 默認值 封裝器
byte 1 0 Byte
short 2 0 Short
int   4 0 Integer
long   8 0.0l Long
float 4 0.0f  Float
double  8  0  Double
 char  \u0000(空格) Character 
 boolean  - - Boolean 

對於boolean布爾數據類型,在《Java虛擬機規范》一書中的描述:“雖然定義了boolean這種數據類型,但是只對它提供了非常有限的支持。在Java虛擬機中沒有任何供boolean值專用的字節碼指令,Java語言表達式所操作的boolean值,在編譯之后都使用Java虛擬機中的int數據類型來代替,而boolean數組將會被編碼成Java虛擬機的byte數組,每個元素boolean元素占8位”。

這樣我們可以得出boolean類型占了單獨使用是4個字節,在數組中又是1個字節。

  • 8種基本數據類型的取值范圍

  a. 整形

    1.  byte : -128~127 (負  2 的7次方 到 2 的7次方-1)

    2.  short : -32768 ~ 32767  (負  2 的15次方 到 2 的15次方-1)

    3.  int :  -2147483648~2147483647(-2的31次方到2的31次方-1)

    4.  long: -9223372036854774808~9223372036854774807(-2的63次方到2的63次方-1)

  b. 浮點型

    float 和 double 都是表示浮點型的數據類型,它們之間的區別在於精確度的不同。

    float(單精度浮點型)取值范圍:3.402823e+38~1.401298e-45(e+38 表示乘以10的38次方,而e-45 表示乘以10的負45次方)

    double(雙精度浮點型)取值范圍:1.797693e+308~4.9000000e-324(同上)

    double 類型比float 類型存儲范圍更大,精度更高。

    通常的浮點型數據在不聲明的情況下都是double型的,如果要表示一個數據時float 型的,可以在數據后面加上 "F" 。

    浮點型的數據是不能完全精確的,有時候在計算時可能出現小數點最后幾位出現浮動,這時正常的。

  c. 字符型

    char 有以下的初始化方式:

    char ch = 'a'; // 可以是漢字,因為是Unicode編碼

    char ch = 1010; // 可以是十進制數、八進制數、十六進制數等等。

    char ch = '\0'; // 可以用字符編碼來初始化,如:'\0' 表示結束符,它的ascll碼是0,這句話的意思和 ch = 0 是一個意思。

    Java是用unicode 來表示字符,“中” 這個中文字符的unicode 就是兩個字節。

    String.getBytes(encoding) 方法獲取的是指定編碼的byte數組表示。

    通常gbk / gb2312 是兩個字節,utf-8 是3個字節。

  d. 布爾型

    boolean : 就倆  false 和true  ,程序員都知道~

  • 8種基本數據類型的相互轉換

    將一種類型的值賦值給另一種類型是很常見的。在Java中,boolean 類型與其他7中類型的數據都不能進行轉換,這一點很明確。但對於其他7種數據類型,它們之間都可以進行轉換,只是可能會存在

  精度損失或其他一些變化。

    轉換分為自動轉換和強制轉換:

    自動轉換(隱式):無需任何操作。

    強制轉換(顯式):需使用轉換操作符(type)。

    將6種數據類型按下面順序排列一下:

    double > float > long > int > short > byte

    如果從小轉換到大,那么可以直接轉換,而從大到小,或char 和其他6種數據類型轉換,則必須使用強制轉換。

  拓展知識點

    Java是面向對象語言,其概念為一切皆為對象,但基本數據類型算是個例外哦,基本數據類型大多是面向機器底層的類型,它是 “值” 而不是一個對象,它存放於“棧”中而不是存放於“堆”中,但Java一切皆為對象的概念不是說說而已,它為每一個基本數據類型都做了相應的包裝類,我們日常使用中大多情況下都會使用着這些包裝類:

  boolean Boolean
  char Character
  byte Byte
  short Short
  int Integer
  long Long
  float Float
  double Double
  String(字符串)
  包裝類就是一個對象,它存放於“堆”中。

 


免責聲明!

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



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