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
相關文章
- js顯式轉換和隱式轉換JS
- JavaScript 隱式資料型別轉換JavaScript資料型別
- JavaScript隱式型別轉換JavaScript型別
- 資料型別隱式轉換導致的阻塞資料型別
- java隱式轉換Java
- 如何實現隱式型別轉換型別
- C語言的隱式型別轉換C語言型別
- Solidity語言學習筆記————11、隱式轉換和顯式轉換Solid筆記
- 建構函式定義的隱式型別轉換函式型別
- 【關於Javascript】--- 隱式型別轉換篇JavaScript型別
- c++隱式型別轉換存在的陷阱C++型別
- scala和java資料型別轉換Java資料型別
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- sql server 資料型別轉換函式SQLServer資料型別函式
- 【Java】資料型別轉換Java資料型別
- 徹底理解c++的隱式型別轉換C++型別
- oracle資料隱式轉換規則Oracle
- Java資料型別及型別轉換Java資料型別
- javascript 隱式轉換JavaScript
- sql隱式轉換SQL
- 2、java資料型別轉換Java資料型別
- c++ static_cast顯式型別轉換C++AST型別
- 函式匹配和實參型別轉換函式型別
- c#自定義型別的轉換方式operator,以及implicit(隱式)和explicit (顯示)宣告C#型別
- 資料型別,型別轉換資料型別
- 資料型別轉換資料型別
- Java資料型別自動轉換(++ ,+=)Java資料型別
- 014 Rust死靈書之顯式型別轉換Rust型別
- Scala Essentials: 隱式轉換
- [20191106]隱式轉換.txt
- golang 快速入門 [8.4]-常量與隱式型別轉換Golang型別
- 33 個 JavaScript 核心概念系列(三): 顯式 (名義) 與 隱式 (鴨子)型別轉換JavaScript型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- Java入門系列-05-資料型別和型別轉換Java資料型別
- JS資料型別的轉換JS資料型別
- '2'>'10'==true? JS是如何進行隱式型別轉換的?JS型別
- 從兩個小例子看js中的隱式型別轉換JS型別
- C++ 表示式中的型別轉換C++型別