1、型別轉換主要在在 賦值、方法呼叫、算術運算 三種情況下發生。
a、賦值和方法呼叫 轉換規則:從低位型別到高位型別自動轉換;從高位型別到低位型別需要強制型別轉換:
(1)布林型和其它基本資料型別之間不能相互轉換;
(2)byte型可以轉換為short、int、、long、float和double;
(3)short可轉換為int、long、float和double;
(4)char可轉換為int、long、float和double;
(5)int可轉換為long、float和double;
(6)long可轉換為float和double;
(7)float可轉換為double;
另外還有是直接數的賦值:先通過直接數判斷其型別,然後基本原則和上面談到的賦值原則基本一致;只是直接數是整數時特殊一點,當在可表示範圍內時,可以直接賦值給 byte short char三種型別;
b、算術運算 中的型別轉換:1 基本就是先轉換為高位資料型別,再參加運算,結果也是最高位的資料型別;2 byte short char運算會轉換為int;
(1)如運算元之一為double,則另乙個運算元先被轉化為double,再參與算術運算。
(2)如兩運算元均不為double,當運算元之一為float,則另一運算元先被轉換為float,再參與運算。
(3)如兩運算元均不為double或float,當運算元之一為long,、則另一運算元先被轉換為long,再參與算術運算。
(4)如兩運算元均不為double、float或long,則兩運算元先被轉換為int,再參與運算。
特殊:
(1)如採用+=、*=等縮略形式的運算子,系統會自動強制將運算結果轉換為目標變數的型別。
(2) 當運算子為自動遞增運算子(++)或自動遞減運算子(--)時,如果運算元為byte,short或char型別不發生改變;
1、基本型別 與 對應包裝類 可自動轉換,這是自動裝箱和折箱的原理;
integer c1 = new integer(1);2、兩個引用型別間轉換:integer c2 = 2;
int cc = new integer(3);
//另:
string 與 基本型別的互轉
int i = integer.parseint("13");
int ii = integer.valueof("12");
string s1 = string.valueof(123);
string s2 =integer.tostring(i);
string s3 = "" + i;
1、子類能直接轉換為父類 或 介面型別;
2、父類轉換為子類要 強制型別轉換;且在執行時若實際不是對應的物件,會丟擲classcastexception執行時異常;
Java資料型別 及 轉換原則
1 型別轉換主要在在 賦值 方法呼叫 算術運算 三種情況下發生。a 賦值和方法呼叫 轉換規則 從低位型別到高位型別自動轉換 從高位型別到低位型別需要強制型別轉換 1 布林型和其它基本資料型別之間不能相互轉換 2 byte型可以轉換為short int long float和double 3 shor...
PHP資料型別(三)資料型別轉換原則
一 轉換成字元型的原則 數字將直接轉換成數字字串 布林型true將轉換成字串 1 false將轉換成空字串 null將轉換成空字串 陣列將轉換成字串 array 二 轉換成數值型的原則 如果字串為合法的數字字串,且不包含 或 e 或 e 且不超過整數的最大範圍時,將轉換為整數 否則將轉換為浮點型 例...
Java資料型別轉換
1字串to整型 string num 111 int integer.parseint num 確保num 只有數字字元 1.1byte and string publicclasstestmain publicstaticbytestring2byte string input byte2stri...