Java數(shù)據(jù)類型轉(zhuǎn)換實(shí)例解析
這篇文章主要介紹了Java數(shù)據(jù)類型轉(zhuǎn)換實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
數(shù)據(jù)類型轉(zhuǎn)換
Java程序中要求參與的計(jì)算的數(shù)據(jù),必須要保證數(shù)據(jù)類型的一致性,如果數(shù)據(jù)類型不一致將發(fā)生類型的轉(zhuǎn)換。
數(shù)據(jù)類型的轉(zhuǎn)換分類
自動類型轉(zhuǎn)換
- 自動類型轉(zhuǎn)換(隱式):將 取值范圍小的類型自動提升為取值范圍大的類型 。
- 轉(zhuǎn)換規(guī)則 :范圍小的類型向范圍大的類型提升, byte、short、char 運(yùn)算時(shí)直接提升為 int 。 byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double
- 特點(diǎn):代碼不需要進(jìn)行特殊處理,自動完成。
代碼舉例:
package demo01_DataTypeTransform; public class Demo01DataType { public static void main(String[] args) { //直接寫上的數(shù)字 默認(rèn)是int類型 System.out.println(2); //直接寫上的小數(shù),默認(rèn)是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é)果
強(qiáng)制類型轉(zhuǎn)換
- 強(qiáng)制類型轉(zhuǎn)換(顯式):將 取值范圍大的類型 強(qiáng)制轉(zhuǎn)換成 取值范圍小的類型 。
- 特點(diǎn):強(qiáng)制轉(zhuǎn)換需要我們自己手動執(zhí)行。
- 轉(zhuǎn)換格式: 數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被轉(zhuǎn)數(shù)據(jù)值;
強(qiáng)制轉(zhuǎn)換類型注意事項(xiàng)
- 強(qiáng)制類型轉(zhuǎn)換一般不推薦使用,因?yàn)橛锌赡馨l(fā)生精度損失、數(shù)據(jù)溢出。
- byte/short/char這三種類型都可以發(fā)生數(shù)學(xué)運(yùn)算,例如加法“+”.
- byte/short/char這三種類型在運(yùn)算的時(shí)候,都會被首先提升成為int類型,然后再計(jì)算。
- boolean類型不能發(fā)生數(shù)據(jù)類型轉(zhuǎn)換
代碼舉例
package demo01_DataTypeTransform; public class Demo02DataType { public static void main(String[] args) { //long類型 強(qiáng)制轉(zhuǎn)換為int 類型 int i = (int) 3333L; System.out.println(i); //當(dāng)要轉(zhuǎn)換的數(shù)據(jù)類型 超過了數(shù)據(jù)類型的范圍的最大值 則會造成數(shù)據(jù)溢出 // 格式:數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被轉(zhuǎn)數(shù)據(jù)值; int j = (int) 600000000000L; System.out.println(j); //浮點(diǎn)轉(zhuǎn)成整數(shù),直接取消小數(shù)點(diǎn),可能造成數(shù)據(jù)損失精度。 int z = (int) 3.14; System.out.println(z); //byte/short/char這三種類型在運(yùn)算的時(shí)候,都會被首先提升成為int類型,然后再計(jì)算。 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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Spring實(shí)戰(zhàn)之方法級別緩存用法示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之方法級別緩存用法,結(jié)合實(shí)例形式分析了spring方法級別緩存配置、屬性文件、領(lǐng)域模型及相關(guān)使用技巧,需要的朋友可以參考下2020-01-01Java中保證多線程間的數(shù)據(jù)共享的方法詳解
這篇文章詳解的發(fā)給大家介紹了Java中是如何保證多線程間的數(shù)據(jù)共享的,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-11-11Java 生成隨機(jī)字符串?dāng)?shù)組的實(shí)例詳解
這篇文章主要介紹了Java 生成隨機(jī)字符串?dāng)?shù)組的實(shí)例詳解的相關(guān)資料,主要是利用Collections.sort()方法對泛型為String的List 進(jìn)行排序,需要的朋友可以參考下2017-08-08關(guān)于Java中finalize析構(gòu)方法的作用詳解
構(gòu)造方法用于創(chuàng)建和初始化類對象,也就是說,構(gòu)造方法負(fù)責(zé)”生出“一個(gè)類對象,并可以在對象出生時(shí)進(jìn)行必要的操作,在這篇文章中會給大家簡單介紹一下析構(gòu)方法,需要的朋友可以參考下2023-05-05SpringMVC基于注解方式實(shí)現(xiàn)上傳下載
本文主要介紹了SpringMVC基于注解方式實(shí)現(xiàn)上傳下載,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04