Java 数据类型转换
生活随笔
收集整理的這篇文章主要介紹了
Java 数据类型转换
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
學(xué)而時(shí)習(xí)之,溫故而知新。
數(shù)據(jù)類型轉(zhuǎn)換,先放一張圖,了解數(shù)據(jù)類型
?
簡(jiǎn)單數(shù)據(jù)類型之間的轉(zhuǎn)換又可以分為:
1 低級(jí)到高級(jí)的自動(dòng)類型轉(zhuǎn)換
2 級(jí)到低級(jí)的強(qiáng)制類型轉(zhuǎn)換
3 包裝類過渡類型轉(zhuǎn)換。
(有時(shí)候我們有叫隱士轉(zhuǎn)換和顯示轉(zhuǎn)換,其實(shí)隱士類型轉(zhuǎn)換也就是自動(dòng)類型轉(zhuǎn)換,顯示類型轉(zhuǎn)換也就是強(qiáng)制類型轉(zhuǎn)換)
?
自動(dòng)類型轉(zhuǎn)換(隱式類型轉(zhuǎn)換),由系統(tǒng)自動(dòng)完成的類型轉(zhuǎn)換。從存儲(chǔ)范圍小的類型到存儲(chǔ)范圍大的類型。由于實(shí)際開發(fā)中這樣的類型轉(zhuǎn)換很多,所以Java語(yǔ)言在設(shè)計(jì)時(shí),沒有為該操作設(shè)計(jì)語(yǔ)法,而是由JVM自動(dòng)完成。
?自動(dòng)類型轉(zhuǎn)換的順序
byte,short,char?-->int? -->long -->float -->double
?
??????????? 例如:byte a=10;
???????????????? int b=a;
???????????????? int b=a;
? ? ? ? 定義a為byte類型 然后是把a(bǔ)賦值給b,這里在賦值時(shí),JVM首先將a的值轉(zhuǎn)換為int類型,然后再賦值給b。
?這樣就是自動(dòng)類型轉(zhuǎn)化。
注意問題
在整數(shù)之間進(jìn)行類型轉(zhuǎn)換時(shí),數(shù)值不發(fā)生改變,而將整數(shù)類型,特別是比較大的整數(shù)類型轉(zhuǎn)換成小數(shù)類型時(shí),由于存儲(chǔ)方式不同,有可能存在數(shù)據(jù)精度的損失。
?
強(qiáng)制類型轉(zhuǎn)換(顯式類型轉(zhuǎn)換),從存儲(chǔ)范圍大的類型到存儲(chǔ)范圍小的類型。該類類型轉(zhuǎn)換很可能存在精度的損失。
例如:
int a=10;
byte b=(byte)a;
當(dāng)編譯?byte b=(byte)a時(shí),?a被強(qiáng)制轉(zhuǎn)換為byte類型。
?
注意: 寫順序的時(shí)候沒有寫boolean 因?yàn)椴紶栃秃推渌緮?shù)據(jù)類型之間不能相互轉(zhuǎn)換;?
包裝類:
對(duì)應(yīng)如下
byte --->byte
short--->short
int----->Integer
long---->Long
float---->Float
double--->Double
char---->Character
boolean---->Boolean
包裝類有何作用
? ? 1?提供了一系列實(shí)用的方法
? ? 2集合不允許存放基本數(shù)據(jù)類型數(shù)據(jù),存放數(shù)字時(shí),要用包裝類型
一般使用: Integer i = new Integer(10);
jdk5.0之后,引入了自動(dòng)裝箱和拆箱
裝箱:將基本數(shù)據(jù)類型封裝為包裝類對(duì)象,利用每一個(gè)包裝類提供的構(gòu)造方法實(shí)現(xiàn)裝箱操作。
拆箱:將包裝類中包裝的基本數(shù)據(jù)類型數(shù)據(jù)取出。
說明:
裝箱
在Java SE5之前,如果要生成一個(gè)數(shù)值為10的Integer對(duì)象,必須這樣進(jìn)行:
Integer i = new Integer(10);
Java SE5開始就提供了自動(dòng)裝箱的特性,如果要生成一個(gè)數(shù)值為10的Integer對(duì)象,只需要這樣就可以了:
Integer i = 10;(這個(gè)過程中會(huì)自動(dòng)根據(jù)數(shù)值創(chuàng)建對(duì)應(yīng)的 Integer對(duì)象,這就是裝箱),
?
拆箱
Integer i = 10; //裝箱? (右邊基本數(shù)據(jù)類型 左邊引用數(shù)據(jù)類型 “自動(dòng)裝箱”)
int n = i; //拆箱
總結(jié)
以上是生活随笔為你收集整理的Java 数据类型转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .svn提交项目提示更新副本
- 下一篇: 以德国二战为背景的异能电影