1. 程式人生 > >Java基本型別及其包裝類

Java基本型別及其包裝類

Java基本型別及其包裝類

1.java中的基本型別

        java中一共提供了8中基本資料型別,分別有byte,short,int,long,float,double,boolean,char; .

        除了這幾種基本變數以外,其他的型別都是引用型別(陣列,類,介面等). 

        基本資料的變數在賦值之後就會立刻在棧上分配記憶體空間

基本型別 預設值 記憶體大小 表示範圍
byte 0 1 -128到127
short 0 2 負的2的15次到正的2的15次減1
int  0L或者0l 4 負的2的31次到正的2的31次減1
long 0 8 負的2的63次到正的2的63次減1
float 0.0F或者0.0f 4 3.4e-45~1.4e38
double 0.0 8 4.9e-324~1.8e308
boolean  false 1 true 和 false
char /u0000 2 \u0000到\uffff

資料型別之間的轉換

       有兩種轉換方式:自動轉換和強制轉換

       自動轉換:型別較小的與型別較大的在進行運算時會自動轉成大的, 從小到大:(byte,short,char)--int--long--float—double

       強制轉換:型別較大的轉換成較小的時候,可以使用int n=(int)3.14159進行轉換,這樣進行轉換可以會損失精度

關於型別的自動提升,注意下面的規則:

①所有的byte,short,char型的值將被提升為int型;

②如果有一個運算元是long型,計算結果是long型;

③如果有一個運算元是float型,計算結果是float型;

④如果有一個運算元是double型,計算結果是double型;


關於基本型別需要注意的

       基本型別傳值是都是按值傳遞,封裝型別是按引用傳遞的

       如果初始化是小數,預設是double,float型別的在後面加f (1.0f); 如果是整數型別,預設是int

       封裝型別的初始值為null,基本型別的的初始值視具體的型別而定

2.包裝類

       在Java中,一切皆物件,但八大基本型別卻不是物件. 為了讓基本型別也具有物件的特徵,就出現了包裝型別,使得它具有了物件的性質,並且為其添加了屬性和方法,豐富了基本型別的操作。

       基本型別的包裝類分別為Integer 、Long、Short、Byte、Character、Double、Float、Boolean

       從jdk1.5開始,JAVA虛擬機器(JavaVirtual Machine)可以完成基本型別和它們對應包裝類之間的自動轉換。因此我們在賦值、引數傳遞以及數學運算的時候像使用基本型別一樣使用它們的包裝類,但這並不意味著你可以通過基本型別呼叫它們的包裝類才具有的方法。

        包裝類如果沒有初始值,他預設的值都是null

        所有基本型別(包括void)的包裝類都使用了final修飾,因此我們無法繼承它們擴充套件新的類,也無法重寫它們的任何方法。

關於包裝類

        除Character類外,其他包裝類可將一個字串作為引數構造它們的例項

        Boolean類構造方法引數為String型別時,若該字串內容為 true(不考慮大小寫),則該Boolean物件表示true,否則表示false。

        所有包裝類都可將與之對應的基本資料型別作為引數,來構造它們的例項


比較

基本型別的優勢:資料儲存相對簡單,運算效率比較高

包裝類的優勢:有的容易,比如集合的元素必須是物件型別,滿足了java一切皆是物件的思想