標籤:mil 進位 byte 相容 佔用 比較大小 一個 strong har
基礎資料型別 (Elementary Data Type)
A.整型
byte:(8位--1個位元組 有符號 以二進位補碼錶示)
範圍:-27~27-1 即 -128~127
short:(16位--2個位元組 有符號 以二進位補碼錶示)
範圍:-215~215-1 即 -32768~32767
int:(32位--4個位元組 有符號 以二進位補碼錶示)
範圍:-231~231-1 即 -2,147,483,648~2,147,483,647
long:(64位--8個位元組 有符號 以二進位補碼錶示)
範圍:-263~263-1 即 -9,223,372,036,854,775,808~9,223,372,036,854,775,807
注:
1.java中的各種整型資料都有固定的位元組長度和範圍,並不受作業系統的影響,以保障java程式的可移植性。
2.Java整型常量三種表示方式:
I.十進位
Ii.八進位 以數字0開頭,如:010表示十進位的8
Iii.十六進位:以數字0和字母x開頭 如 0x12等於十進位的18
3.各種資料類型的資料不能超出其表示範圍,否則會溢出。在編譯時間就會報錯
4.Java整型常量預設是int型的,如果要聲明一個long類型的常量資料則需要在數字後面加上‘l’或‘L’,否則會報錯。
B.浮點型
電腦中資料不是連續的,而是離散的,如0到1之間有無數個浮點數,但是在電腦中無法做到將這些數完全一一表示,故而存在誤差。所以浮點數無法直接比較大小
如. float a = 0.1f;a==0.1的結果是false
如果兩個同符號浮點數之差的絕對值小於或等於某一個可接受的誤差(即精度),就認為它們是相等的。
不要直接用“==”或者“!=”對兩個浮點數進行比較,但是可以直接用“<”和“>”比較誰大誰小。或者定義一個誤差,當兩個浮點數的差的絕對值在這個範圍內,則認為兩個浮點數相等。
float:(占4個位元組 )
1bit(符號位) 8bits(指數位) 23bits(尾數位)
範圍為-2^128 ~ +2^127,也即-3.40E+38 ~ +3.40E+38
double:(8個位元組)
1bit(符號位) 11bits(指數位) 52bits(尾數位)
範圍為-2^1024 ~ +2^1023,也即-1.79E+308 ~ +1.79E+308。
註:
Java浮點型常量預設是double型的,如果要聲明一個float類型的常量資料則需要在數字後面加上‘f’或‘F’,否則會報錯。
C.字元型
char型(字元型)資料在記憶體中佔用2個位元組。char型資料用來表示通常意義上的字元,每個字元占2個位元組,Java字元採用Unicode編碼,它的前128位元組編碼與ASCII相容字元的儲存範圍在\u0000~\uFFFF,在定義字元型的資料時候要注意加‘ ‘,比如 ‘1‘表示字元‘1‘而不是數值1
D.布爾類型
數值只有true 和 false
基本類型資料之間的類型轉換(低精度向高精度轉換,直接轉換;反之需強制轉換,丟失精度)
byte-->short-->int-->long-->float-->double
char
註:兩個char型運算時,自動轉換為int型;當char與別的類型運算時,也會先自動轉換為int型的,再做其它類型的自動轉換
參考型別
類(class) 介面(interface) 數組。類似於C語言中的指標。
Java資料類型(1)