歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Java數據類型

 

(一)基本數據類型

1.整數型

 首位為符號位,後面是數字位,符號位為0表示正數,後面數字位直接二進制轉化為10進制;符號位1為負,把後面所有的位數取反(即0,1互換),再轉化為10進制後加1,就得到該負數的絕對值。

整型

字節

最大存儲數據

存放的數據范圍

Byte

1(8bit)

28-1

-27~27-1

Short

2(16bit)

216-1

-215~215-1

Int

4(32bit)

232-1

-231~231-1

long

8(64bit)

264-1

-263~263-1

整型中默認類型是int型,有以下表達方式:

十進制:  語法→0~9之間的數字,如int x=123;

8進制 : 語法→加前綴0,如int x=0123;

16進制:語法→加前綴0x或0X;如int x=0x123;

注:長整型數字需加後綴L或者l,如long x=9876543210L;

 

2.浮點型

首位為符號位,中間是指數位e,表示2的階乘,後面是尾數位m(0<=m<1),指數位的首位是指數符號位,

數字表示:(1+m)*2e

浮點型

字節

數據范圍

備注

Float-單精度

4(32bit)

3.4e-45 ~ 1.4e38

(-2128~2128

直接賦值需在最後加f或者F

Double-雙精度

8(64bit)

4.9e-324 ~ 1.8e308

(-21024 ~21024 

直接賦值可以在最後加d或者D,也可不加

 

符號位

指數位e

尾數位m (0<m<=1)

0/1

符號位(首位)

 剩余位

2-1

2-2

2-3

……

Float

1位

7位

23

double

1位

10位

52

浮點型默認類型是double型。浮點型有2種寫法:

小數型:如1.2

指數型:語法→數字A e(或E) 數字B,表示數字A乘以10的數字B次方,如2e3→2*103=2000;  -3e-2→-3*10-2=-0.03

注:強制表示單精度浮點型,在數字後面加後綴f或者F,強制表示雙精度浮點型,在數字後加後綴d或者D。

 

3.字符型

char →單引號引用的單個Unicode碼字符或者16bit非負整數;占兩個字節,表示一個字符,寫法有兩種:

數字式:0~216-1之間的整數

字母式:單引號引用的1個字符,可以是任何字符,包括標點符號、數字、大小寫英文字母、日文、漢字等,是Unicode編號

字母式寫法中單引號引用的內容中,還有以下寫法:

字符:如'a'

8進制: 語法→'\ddd',如'\123'

16進制:語法:‘\uhhhh', 如'\u9646'

部分特殊字符,'\字母',如'\t'表示縮進符,'\n' 表示換行符, '\r'表示回車符

 

4.布爾型(邏輯型)

boolean,只有兩個值,true/false,或者邏輯表達式,不能用0,1表示,也不是“true”字符串

 

數據值域補充說明:

1.一個bit是計算機存儲的最小數據單位,即1位,只可能是0或者1;

2.一個byte由8個bit組成,即8位,可以表示256個整數值,又由於byte在java中有符號之分(正負數),所以范圍是-128~127;

3.一個char在java中有兩個byte組成,用來表示一個字符,即unicode編碼,是無符號類型;

4.int和float在java中由4個byte組成;

5.每個long或者double型變量占用8個byte的存儲空間;

6.1T=1024G, 1G=1024M, 1M=1024K, 1K=1024B;

 

(二)引用數據類型

所有用class,interface,abstract 定義的類;

 

String也是java定義的一個類,其數據存儲方式與基本數據類型一樣,但是String不是基本數據類型;基本數據類型也不是類;

 

(三)數據類型的轉換

源類型與目標類型要兼容,比如數字和字符串類型之間就不能轉換。數據轉換分為自動轉換和強制轉換:

自動轉換:從小范圍類型的字面量轉為大范圍類型,如byte,short→int→long,float→double;

強制轉換:語法→(類型) 表達式,可以進行大范圍類型的字面量,轉為小范圍類型。整數的強制轉換時通過截取保留最後長度的方式進行,所以容易出現正數強制轉換後變成負數的可能。(浮點型強制轉整型,實際是先轉為int型)

表達式類型提升規則:byte→short→int→long→float→double

例:

int x=10;
short y=(short)x;   // 強制轉換
System.out.println(y)

short a=10;
int b=a;            //自動轉換
System.out.println(b);

int c=400;
byte d=(byte)c;    //強制轉換後正數轉換為了負數,此處輸出結果d=-112
System.out.println(d);

Copyright © Linux教程網 All Rights Reserved