Java資料型別的顯式轉換和隱式轉換
隱式轉換:
下面程式碼是以下意思:兩個byte資料型別進行運算,結果為int資料型別。
先說結論:
(byte,short)<int<long<float<double;
一個運算只涉及byte,short時,結果就會轉換成int;
如果涉及到其他運算,按照上面的關係結果轉換成大的資料型別。
下面是一些程式碼例項
public class TypeWay {
public static void main(String[] args) {
byte b1 = 1, b2 = 2;
System.out.println(getType(b1+b2));
}
public static String getType(Object a){
return a.getClass().toString();
}
}
執行結果:class java.lang.Integer
下面程式碼的意思是:一個byte資料型別和一個short資料型別運算,結果為int資料型別。
public class TypeWay {
public static void main(String[] args) {
byte b1 = 1;
short b2 = 2;
System.out.println(getType(b1+b2));
}
public static String getType(Object a){
return a.getClass().toString();
}
}
結果為:class java.lang.Integer
下面的程式碼意思是:一個int和long資料型別運算,結果為long資料型別。
public class TypeWay {
public static void main(String[] args) {
int b1 = 1;
long b2 = 2;
System.out.println(getType(b1*b2));
System.out.println("go and try");
}
public static String getType(Object a){
return a.getClass().toString();
}
}
結果為:class java.lang.Long
下面程式碼的意思是:一個int資料型別和double資料型別運算,運算結果doule資料型別。
public class TypeWay {
public static void main(String[] args) {
int b1 = 1;
double b2 = 2.0;
System.out.println(getType(b1*b2));
System.out.println("go and try");
}
public static String getType(Object a){
return a.getClass().toString();
}
}
結果為:class java.lang.Double
下面的程式碼意思是:一個float和double資料型別運算,結果為double資料型別。
public class TypeWay {
public static void main(String[] args) {
float b1 = 1.0f;
double b2 = 2.0;
System.out.println(getType(b1*b2));
System.out.println("go and try");
}
public static String getType(Object a){
return a.getClass().toString();
}
}
結果為:class java.lang.Double
顯示轉換
直接在資料前面加上你的轉換資料型別的相應函式即可。但是不支援將高階資料型別轉換成低階的資料型別。
下面是一些例項:
高資料型別不能轉換成高資料型別。
public class TypeWay {
public static void main(String[] args) {
int b1 = 1;
int b2 = 2;
System.out.println(getType((byte)b1*b2));
}
public static String getType(Object a){
return a.getClass().toString();
}
}
結果是:class java.lang.Integer
低資料型別轉換成高資料型別:
public class TypeWay {
public static void main(String[] args) {
int b1 = 1;
int b2 = 2;
System.out.println(getType((long)b1*b2));
}
public static String getType(Object a){
return a.getClass().toString();
}
}
結果是:class java.lang.Long
相關文章
- javascript資料型別隱式和顯式轉換詳解JavaScript資料型別
- 資料型別的隱式轉換資料型別
- js顯式轉換和隱式轉換JS
- JavaScript 隱式資料型別轉換JavaScript資料型別
- JavaScript隱式型別轉換JavaScript型別
- MySQL 隱式型別轉換MySql型別
- 從Java的型別轉換看MySQL和Oracle中的隱式轉換(二)Java型別MySqlOracle
- 資料型別隱式轉換導致的阻塞資料型別
- ORACLE中的隱式資料型別轉換(一)Oracle資料型別
- C++隱式型別的轉換C++型別
- 有趣的JavaScript隱式型別轉換JavaScript型別
- oracle資料型別隱式轉換----- 應急方案Oracle資料型別
- C# 隱式型別轉換(轉載)C#型別
- java隱式轉換Java
- 如何實現隱式型別轉換型別
- 談談 MySQL 隱式型別轉換MySql型別
- C++隱式類型別轉換C++型別
- C++ 隱式類型別轉換C++型別
- 索引失效系列——隱式型別轉換索引型別
- JavaScript隱式型別轉換趣解JavaScript型別
- C語言的隱式型別轉換C語言型別
- JavaScript的隱式型別轉換淺析JavaScript型別
- javascript 隱式資料型別轉換程式碼例項JavaScript資料型別
- 欄位的資料型別隱式轉換有關係資料型別
- 建構函式定義的隱式型別轉換函式型別
- 【關於Javascript】--- 隱式型別轉換篇JavaScript型別
- c++隱式型別轉換存在的陷阱C++型別
- 「譯」JavaScript 的怪癖 1:隱式型別轉換JavaScript型別
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- scala和java資料型別轉換Java資料型別
- Solidity語言學習筆記————11、隱式轉換和顯式轉換Solid筆記
- sql server 資料型別轉換函式SQLServer資料型別函式
- Sql Server 資料型別 轉換 函式SQLServer資料型別函式
- Sql Server資料型別轉換函式SQLServer資料型別函式
- 【Java】資料型別轉換Java資料型別
- 關於隱式資料型別轉換的一些試驗資料型別
- Scala - 隱式轉換和隱式引數
- 徹底理解c++的隱式型別轉換C++型別