【Java筆記】Java的類型轉換

目錄

太長不看版(總結)

**總結:
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類型。

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

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

short i=99 ;
char c=(char)i;
System.out.println(“output:”+c);

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

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

  3. 當字節類型變量參與運算,java作自動數據運算類型的提升,將其轉換爲int類型。例如:byte b;
    b=3;
    b=(byte)(b*3);//必須聲明byte。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章