在Java編程中辙谜,我們會經(jīng)常遇到數(shù)據(jù)類型轉(zhuǎn)換。那什么是數(shù)據(jù)類型轉(zhuǎn)換呢感昼?他的轉(zhuǎn)換規(guī)則是怎么樣的呢装哆?在這篇博客將為各位看官介紹數(shù)據(jù)類型的轉(zhuǎn)換,希望能對大家學習技術有幫助定嗓!
數(shù)據(jù)類型轉(zhuǎn)換
1.自動類型轉(zhuǎn)換蜕琴;
2.強制類型裝換;
3.隱含強制轉(zhuǎn)換宵溅;
1.自動類型轉(zhuǎn)換
必須滿足轉(zhuǎn)換前的數(shù)據(jù)類型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類型凌简,例如: short數(shù)據(jù)類型的位數(shù)為16位,就可以自動轉(zhuǎn)換位數(shù)為32的int類型恃逻,同樣float數(shù)據(jù)類型的位數(shù)為32雏搂,可以自動轉(zhuǎn)換為64位的double類型。
代碼實例
public class ZiDongLeiZhuanHuan{
public static void main(String[] args){
char c1='a';//定義一個char類型
int i1 = c1;//char自動類型轉(zhuǎn)換為int
System.out.println("char自動類型轉(zhuǎn)換為int后的值等于"+i1);
char c2 = 'A';//定義一個char類型
int i2 = c2+1;//char 類型和 int 類型計算
System.out.println("char類型和int計算后的值等于"+i2);
}
}
運行結(jié)果
char自動類型轉(zhuǎn)換為int后的值等于97
char類型和int計算后的值等于66
注解:c1的值為字符'a',查ascii碼表可知對應的int類型值為97寇损,'A'對應值為65凸郑,所以i2=65+1=66。
2.強制類型轉(zhuǎn)換
1)條件是轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的矛市。
2)格式:(type)value type是要強制類型轉(zhuǎn)換后的數(shù)據(jù)類型 芙沥。
代碼實例
public class QiangZhiZhuanHuan{
public static void main(String[] args){
int i1 = 123;
byte b = (byte)i1;//強制類型轉(zhuǎn)換為byte
System.out.println("int強制類型轉(zhuǎn)換為byte后的值等于"+b);
}
}
運行結(jié)果
int強制類型轉(zhuǎn)換為byte后的值等于123
隱含強制轉(zhuǎn)換
1)整數(shù)的默認類型是 int。
2) 浮點型不存在這種情況浊吏,因為在定義 float 類型時必須在數(shù)字后面跟上 F 或者 f而昨。
數(shù)據(jù)類型轉(zhuǎn)換原則
1.從低精度向高精度轉(zhuǎn)換
byte 、short找田、int歌憨、long、float午阵、double躺孝、char
注:兩個char型運算時享扔,自動轉(zhuǎn)換為int型底桂;當char與別的類型運算時植袍,也會先自動轉(zhuǎn)換為int型的,再做其它類型的自動轉(zhuǎn)換
2.基本類型向類類型轉(zhuǎn)換
1)正向轉(zhuǎn)換:通過類包裝器來new出一個新的類類型的變量
Integer a= new Integer(2);
2)反向轉(zhuǎn)換:通過類包裝器來轉(zhuǎn)換
int b=a.intValue();
3.類類型向字符串轉(zhuǎn)換
正向轉(zhuǎn)換:因為每個類都是object類的子類籽懦,而所有的object類都有一個toString()函數(shù)于个,所以通過toString()函數(shù)來轉(zhuǎn)換即可;
反向轉(zhuǎn)換:通過類包裝器new出一個新的類類型的變量
4.基本類型向字符串的轉(zhuǎn)換
正向轉(zhuǎn)換:
如:int a=12;
String b;b=a+””;
反向轉(zhuǎn)換:
通過類包裝器
總結(jié)
Java的數(shù)據(jù)類型轉(zhuǎn)換,目前掌握的就這些暮顺。后期對數(shù)據(jù)類型有新的理解厅篓,也會和大家分享。