# 基本數據類型和引用數據類型在存儲上的區別 ## 基本數據類型有哪些 | 類型名稱 | 關鍵字 | 占用記憶體 | 取值範圍 | | | | | | | 位元組型 | byte | 1 位元組 | -128~127 | | 短整型 | short | 2 位元組 | -32768~32767 | | 整型 ...
基本數據類型和引用數據類型在存儲上的區別
基本數據類型有哪些
類型名稱 | 關鍵字 | 占用記憶體 | 取值範圍 |
---|---|---|---|
位元組型 | byte | 1 位元組 | -128~127 |
短整型 | short | 2 位元組 | -32768~32767 |
整型 | int | 4 位元組 | -2147483648~2147483647 |
長整型 | long | 8 位元組 | -9223372036854775808L~9223372036854775807L |
單精度浮點型 | float | 4 位元組 | +/-3.4E+38F(6~7 個有效位) |
雙精度浮點型 | double | 8 位元組 | +/-1.8E+308 (15 個有效位) |
字元型 | char | 2 位元組 | ISO 單一字元集 |
布爾型 | boolean | 1 位元組 | true 或 false |
引用數據類型有哪些
可以說,除了上面八種數據類型之外基本都是引用數據類型,包括String,自定義類等
存儲結構的區別
基本數據類型的變數空間存儲在棧當中,並且棧是直接存儲著變數的值(空間大小固定)
引用數據變數的變數空間也存儲在棧當中,但是棧當中存儲的是引用地址,地址指向在堆中開闢的可變空間
可以說,
基本數據變數和引用數據變數的左邊聲明部分都是存儲在棧當中,只不過一個存儲的是值,一個存儲的是地址。而引用數據類型的右邊部分即new的部分是在堆當中。