目錄
–
太長不看版(總結)
**總結:
1、強制類型轉換:(類型名)要轉換的值 ;
2、其他基本類型轉換爲類類型:都可以用volueOf(X),例如String.volueOf(X);
3、類類型向對象的基本類型轉換:都可以使用XXXValue,例如 int i=Integer.valueOf(“123”).intValue()。這個語句使用的類包裝器過渡。
1、JAVA數據類型
要了解JAVA的數據類型轉換我們就要先了解一下JAVA都有哪些數據類型。
JAVA中分爲基本數據類型及引用數據類型
1、1基本數據類型(小寫)
基本類型:簡單數據類型是不能簡化的、內置的數據類型、由編程語言本身定義,它表示了真實的數字、字符和整數。
注意:
4類8種對應的類類型:Integer、Float、Boolean、Character、Double、Short、Byte、Long
基本的數據類型由低級到高級分別爲:(byte、short、char)——int——long——float——double
PS:此處的“級別”是指表示值的範圍的大小。
4類8種:
(1)整型:int、short、long、byte。
(2)浮點型:float、double。
(3)字符型:char。
(4)布爾型:boolean。
byte:Java中最小的數據類型,在內存中佔8位(bit),即1個字節,取值範圍-128~127,默認值0
short:短整型,在內存中佔16位,即2個字節,取值範圍-32768~32717,默認值0
int:整型,用於存儲整數,在內在中佔32位,即4個字節,取值範圍-2147483648~2147483647,默認值0
long:長整型,在內存中佔64位,即8個字節-2^63~2^63-1,默認值0L
float:浮點型,在內存中佔32位,即4個字節,用於存儲帶小數點的數字(與double的區別在於float類型有效小數點只有6~7位),默認值0
double:雙精度浮點型,用於存儲帶有小數點的數字,在內存中佔64位,即8個字節,默認值0
char:字符型,用於存儲單個字符,佔16位,即2個字節,取值範圍0~65535,默認值爲空
boolean:布爾類型,佔1個字節,用於判斷真或假(僅有兩個值,即true、false),默認值false
1、2引用數據類型(大寫)
引用數據類型:Java語言本身不支持C++中的結構(struct)或聯合(union)數據類型,它的複合數據類型一般都是通過*類或接口進行構造*,類提供了捆綁數據和方法的方式,同時可以針對程序外部進行信息隱藏。
引用類型包括類、接口、枚舉和數組類型、null類型。
空引用null只能被被轉化爲引用類型,不能轉化成基本類型,因此,不能把一個null值賦給基本類型的變量。
2、JAVA都有哪些類型轉換
總結:其他基本類型轉換爲類類型都可以用volueOf(X),例如String.volueOf(X);類類型向對象的基本類型轉換都可以使用XXXValue,例如 int i=Integer.valueOf(“123”).intValue()。這個語句使用的類包裝器過渡。
分爲以下幾種情況:
2.1低級到高級的自動類型轉換;
2.2高級到低級的強制類型轉換(會導致溢出或丟失精度);
2.3基本類型向類類型轉換;
2.4基本類型與字符串的轉換;
⑴其它類型向字符串的轉換
①調用類的串轉換方法:X.toString();
②自動轉換:X+“”;
③使用String的方法:String.volueOf(X);
⑵字符串作爲值,向其它類型的轉換
①先轉換成相應的封裝器實例,再調用對應的方法轉換成其它類型
例如,字符中“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。
2.5類類型向字符串轉換
正向轉換:因爲每個類都是object類的子類,而所有的object類都有一個toString()函數,所以通過toString()函數來轉換即可
反向轉換:通過類包裝器new出一個新的類類型的變量
eg1: int i=Integer.valueOf(“123”).intValue()
說明:上例是將一個字符串轉化成一個Integer對象,然後再調用這個對象的intValue()方法返回其對應的int數值。
3、基本數據類型之間的轉換規則
基本數據類型之間的轉換規則
1.在一個雙操作數以及位運算等算術運算式中,會根據操作數的類型將低級的數據類型自動轉換爲高級的數據類型,分爲以下幾種情況:
1)只要兩個操作數中有一個是double類型的,另一個將會被轉換成double類型,並且結果也是double類型;
2)只要兩個操作數中有一個是float類型的,另一個將會被轉換成float類型,並且結果也是float類型;
3)只要兩個操作數中有一個是long類型的,另一個將會被轉換成long類型,並且結果也是long類型;
4)兩個操作數(包括byte、short、int、char)都將會被轉換成int類型,並且結果也是int類型。
如果低級類型爲char型,向高級類型(整型)轉換時,會轉換爲對應ASCII碼值,再做其它類型的自動轉換。
對於byte,short,char三種類型而言,他們是平級的,因此不能相互自動轉換,可以使用下述的強制類型轉換。 如:
short i=99 ;
char c=(char)i;
System.out.println(“output:”+c);
不能在布爾值和任何數字類型間強制類型轉換;
不同級別數據類型間的強制轉換,可能會導致溢出或精度的下降。
當字節類型變量參與運算,java作自動數據運算類型的提升,將其轉換爲int類型。例如:byte b;
b=3;
b=(byte)(b*3);//必須聲明byte。