Java數(shù)據(jù)類型轉(zhuǎn)換實例解析
這篇文章主要介紹了Java數(shù)據(jù)類型轉(zhuǎn)換實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
數(shù)據(jù)類型轉(zhuǎn)換
Java程序中要求參與的計算的數(shù)據(jù),必須要保證數(shù)據(jù)類型的一致性,如果數(shù)據(jù)類型不一致將發(fā)生類型的轉(zhuǎn)換。
數(shù)據(jù)類型的轉(zhuǎn)換分類
自動類型轉(zhuǎn)換
- 自動類型轉(zhuǎn)換(隱式):將 取值范圍小的類型自動提升為取值范圍大的類型 。
- 轉(zhuǎn)換規(guī)則 :范圍小的類型向范圍大的類型提升, byte、short、char 運算時直接提升為 int 。 byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
- 特點:代碼不需要進行特殊處理,自動完成。
代碼舉例:
package demo01_DataTypeTransform; public class Demo01DataType { public static void main(String[] args) { //直接寫上的數(shù)字 默認是int類型 System.out.println(2); //直接寫上的小數(shù),默認是double類型 System.out.println(3.14); // int 類型 賦值給 long類型 符合自動類型轉(zhuǎn)換的規(guī)則 自動轉(zhuǎn)換為long類型 long l = 888; System.out.println(l); // long類型賦值給float類型 符合自動類型轉(zhuǎn)換的規(guī)則 自動轉(zhuǎn)換為float類型 float f = 5656L; System.out.println(f); // float類型 賦值給double類型 符合自動類型轉(zhuǎn)換的規(guī)則 自動轉(zhuǎn)換為double類型 double d = 3.14F; System.out.println(d); } }
代碼執(zhí)行后的結(jié)果
強制類型轉(zhuǎn)換
- 強制類型轉(zhuǎn)換(顯式):將 取值范圍大的類型 強制轉(zhuǎn)換成 取值范圍小的類型 。
- 特點:強制轉(zhuǎn)換需要我們自己手動執(zhí)行。
- 轉(zhuǎn)換格式: 數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被轉(zhuǎn)數(shù)據(jù)值;
強制轉(zhuǎn)換類型注意事項
- 強制類型轉(zhuǎn)換一般不推薦使用,因為有可能發(fā)生精度損失、數(shù)據(jù)溢出。
- byte/short/char這三種類型都可以發(fā)生數(shù)學運算,例如加法“+”.
- byte/short/char這三種類型在運算的時候,都會被首先提升成為int類型,然后再計算。
- boolean類型不能發(fā)生數(shù)據(jù)類型轉(zhuǎn)換
代碼舉例
package demo01_DataTypeTransform; public class Demo02DataType { public static void main(String[] args) { //long類型 強制轉(zhuǎn)換為int 類型 int i = (int) 3333L; System.out.println(i); //當要轉(zhuǎn)換的數(shù)據(jù)類型 超過了數(shù)據(jù)類型的范圍的最大值 則會造成數(shù)據(jù)溢出 // 格式:數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被轉(zhuǎn)數(shù)據(jù)值; int j = (int) 600000000000L; System.out.println(j); //浮點轉(zhuǎn)成整數(shù),直接取消小數(shù)點,可能造成數(shù)據(jù)損失精度。 int z = (int) 3.14; System.out.println(z); //byte/short/char這三種類型在運算的時候,都會被首先提升成為int類型,然后再計算。 byte b = 3; short s = 5; char c = 'c'; /* * byte + short ---> int + int --->int * int + char --->int + int ---->int * char 類型提升int類型 查詢Ascll碼表 */ int result = b + c + s; System.out.println(result); } }
代碼執(zhí)行后的結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java中保證多線程間的數(shù)據(jù)共享的方法詳解
這篇文章詳解的發(fā)給大家介紹了Java中是如何保證多線程間的數(shù)據(jù)共享的,文中通過圖文介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2023-11-11關(guān)于Java中finalize析構(gòu)方法的作用詳解
構(gòu)造方法用于創(chuàng)建和初始化類對象,也就是說,構(gòu)造方法負責”生出“一個類對象,并可以在對象出生時進行必要的操作,在這篇文章中會給大家簡單介紹一下析構(gòu)方法,需要的朋友可以參考下2023-05-05