Java基礎-數據類型及其之間的轉換

一、基本的數據類型

基本類型有以下四種:

1.int長度數據類型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits);

2.float長度數據類型有:單精度(32bits float)、雙精度(64bits double)。

    java中將小數默認爲double類型,也可以在double類型後添加後綴d或者D,若要定義float需在數據後面用f或者F聲明,如果使用long類型,則必須加後綴l或者L;

3.boolean類型變量的取值有:true、false;

4.char數據類型有:unicode字符,16bits。一個char可以保存一個漢字。

         8中基本類型對應的類類型:Byte、Short、Integer、Long、Float、Double、Boolean、Character。

         基本的數據類型由低級到高級分別爲:(byte、short、char)--int--long--float--doube。

ps:此處的“級別”是表示值得範圍的大小。

二、數據類型之間的轉換

分爲以下幾種情況:

1.低級到高級的自動類型轉換;

2.高級到低級的強制類型轉換(會導致溢出或丟失精度);

3.基本類型向類類型轉換;

4.基本類型向字符串的轉換;

5.類類型向字符串轉換

三、基本數據類型之間的轉換規則

1.在一個雙操作數以及位運算等算術運算式中,會根據操作數的類型將低級的數據類型自動轉換爲高級的數據類型,分爲以下幾種情況:

   1)只要兩個操作數中有一個是double類型的,另一個將會被轉換成double類型,並且結果也是double類型; 

   2)只要兩個操作數中有一個是float類型的,另一個將會被轉換成float類型,並且結果也是float類型; 

   3)只要兩個操作數中有一個是long類型的,另一個將會被轉換成long類型,並且結果也是long類型; 

   4)兩個操作數(包括byte、short、int、char)都將會被轉換成int類型,並且結果也是int類型。   

2. 如果低級類型爲char型,向高級類型(整型)轉換時,會轉換爲對應ASCII碼值,再做其它類型的自動轉換。 

3. 對於byte,short,char三種類型而言,它們是平級的,因此不能相互自動轉換,可以使用下述的強制類型轉換。

      如: short i=99;

                char c=(char)i; 

                System.out.println("output:"+c);   //c,99爲小寫c的ascii碼

4. 不能在布爾值和任何數字類型間強制類型轉換; 

5. 不同級別數據類型間的強制轉換,可能會導致溢出或精度的下降;  

6. 當字節類型變量參與運算,java作自動數據運算類型的提升,將其轉換爲int類型。

    例如:byte b;    

                b=3;     

                b=(byte)(b*3);//必須聲明byte。

四、包裝數據類型與基本數據類型之間的轉換

        簡單類型的變量轉換爲相應的包裝類,可以利用包裝類的構造函數。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)  而在各個包裝類中,總有形爲××Value()的方法,來得到其對應的簡單類型數據。利用這種方法,也可以實現不同數值型變量間的轉換,例如,對於一個雙精度實型類,intValue()可以得到其對應的整型變量,而doubleValue()可以得到其對應的雙精度實型變量。

1.字符串與其它類型間的轉換

(1)其它類型向字符串的轉換 

     ①調用類的串轉換方法:X.toString();

     ②自動轉換:X+“”; 

     ③使用String的方法:String.volueOf(X);

(2)字符串作爲值,向其它類型的轉換 

      ①先轉換成相應的封裝器實例,再調用對應的方法轉換成其它類型 

          例如,字符中“32.1”轉換double型的值的格式爲:new Float(“32.1”).doubleValue()。也可以用:Double.valueOf(“32.1”).doubleValue()

      ②靜態parseXXX方法

          例如:

            String s = "1"; 

            byte b = Byte.parseByte( s );

            short t = Short.parseShort( s );

            int i = Integer.parseInt( s );

            long l = Long.parseLong( s );

            Float f = Float.parseFloat( s );

            Double d = Double.parseDouble( s );

     ③Character的getNumericValue(char ch)方法

       具體可查閱api。

五、轉換實例

1.基本類型向類類型轉換 

正向轉換:通過類包裝器來new出一個新的類類型的變量

Integer a= new Integer(2);

反向轉換:通過類包裝器來轉換 int b=a.intValue(); 

通過類包裝器——>基本數據類型

eg1:int i=Integer.parseInt(“123”)

說明:此方法只能適用於字符串轉化成整型變量

eg2: float f=Float.valueOf(“123”).floatValue() 

說明:上例是將一個字符串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。 

eg3: boolean b=Boolean.valueOf(“123”).booleanValue() 

說明:上例是將一個字符串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。

eg4:double d=Double.valueOf(“123”).doubleValue() 

說明:上例是將一個字符串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。 

eg5: long l=Long.valueOf(“123”).longValue() 

說明:上例是將一個字符串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。 

eg6: char=Character.valueOf(“123”).charValue() 

說明:上例是將一個字符串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。

2.基本類型向字符串的轉換

正向轉換: 如下: 

System.out.println(""+2+3); //    雙引號“""”把2轉成字符串操作;

System.out.println(2+3);// 不存在轉換。 

System.out.println(2+3+"");// 前兩個數值相加後,被“""”轉成字符串。

System.out.println(2+""+3);// 同第一個。

輸出顯示爲:23,5,5,23

3.類類型向字符串轉換 

正向轉換:因爲每個類都是object類的子類,而所有的object類都有一個toString()函數,所以通過toString()函數來轉換即可 

反向轉換:通過類包裝器new出一個新的類類型的變量

eg1: int i=Integer.valueOf(“123”).intValue() 

說明:上例是將一個字符串轉化成一個Integer對象,然後再調用這個對象的intValue()方法返回其對應的int數值。 

eg2: float f=Float.valueOf(“123”).floatValue() 

說明:上例是將一個字符串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。 

eg3: boolean b=Boolean.valueOf(“123”).booleanValue() 

說明:上例是將一個字符串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。

eg4:double d=Double.valueOf(“123”).doubleValue() 

說明:上例是將一個字符串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。 

eg5: long l=Long.valueOf(“123”).longValue() 

說明:上例是將一個字符串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。 

eg6: char=Character.valueOf(“123”).charValue() 

說明:上例是將一個字符串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。

發佈了39 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章