Java數(shù)據(jù)類型分類與基本數(shù)據(jù)類型轉(zhuǎn)換
1.數(shù)據(jù)類型的分類
Java的數(shù)據(jù)類型主要分為兩類:基本數(shù)據(jù)類型、引用數(shù)據(jù)類型

Java中的字符串String屬于引用數(shù)據(jù)類型。因?yàn)镾tring是一個(gè)類
他們的默認(rèn)值和字節(jié)大小如下:

byte類型的取值范圍為-128~127,因?yàn)?strong>1個(gè)字節(jié)=8位,則一個(gè)字節(jié)的區(qū)間為:[-128,127]

計(jì)算機(jī)儲(chǔ)存有符號(hào)的整數(shù)時(shí),是用該整數(shù)的補(bǔ)碼進(jìn)行存儲(chǔ)的。
注意事項(xiàng):
Java中的整型常量默認(rèn)是int類型,聲明long類型常量需要在數(shù)值后面加上“l或L”
Java中的小數(shù)默認(rèn)是double類型,聲明float類型常量需要在數(shù)值后面加上“f或F”

2.基本數(shù)據(jù)類型轉(zhuǎn)換
(1)自動(dòng)類型轉(zhuǎn)換
即隱式類型轉(zhuǎn)換:將小盒子裝到大盒子里面,小=>大
類型范圍小的變量,可以直接賦值給類型范圍大的變量。
①底層實(shí)現(xiàn)原理如下圖所示:

注:char類型也可以轉(zhuǎn)換為int類型
char類型存放的unicode字符集,字符底層是二進(jìn)制,二進(jìn)制也就是數(shù)字,并且char占用2個(gè)字節(jié),小于int的范圍,所以可以轉(zhuǎn)換為int類型。
A的ASCII碼是65,a的ASCII碼是97;ASCII碼表中,一個(gè)字母的大小寫數(shù)值相差32,一般知道大寫字母的ASCII碼數(shù)值,其對(duì)應(yīng)的小寫字母的ASCII碼數(shù)值就算出來(lái)了,是大寫字母的ASCII碼數(shù)值“+32”。
0的ASCII碼值為48,1的ASCII碼值為49
②示例:

注意事項(xiàng):
在表達(dá)式中,小范圍類型的變量會(huì)自動(dòng)轉(zhuǎn)換成當(dāng)前較大范圍的類型再運(yùn)算。
在表達(dá)式中,byte、short、char 是直接轉(zhuǎn)換成int類型參與運(yùn)算的
例:

此處的i和j在做運(yùn)算時(shí),被轉(zhuǎn)換為int類型進(jìn)行計(jì)算,所以數(shù)據(jù)類型應(yīng)改為int

思考:為什么要將數(shù)據(jù)類型轉(zhuǎn)換成int進(jìn)行計(jì)算?
因?yàn)楫?dāng)兩個(gè)數(shù)都比較小的時(shí)候?qū)Y(jié)果可能沒有影響,一旦兩個(gè)數(shù)字都比較大,例如110+120=230,超出了byte的取值范圍,所以索性直接轉(zhuǎn)換成int進(jìn)行計(jì)算。
(2)強(qiáng)制類型轉(zhuǎn)換
類型范圍大的數(shù)據(jù)或者變量,不能直接賦值給類型范圍小的變量,會(huì)報(bào)錯(cuò)。
可以強(qiáng)行將類型范圍大的變量、數(shù)據(jù)賦值給類型范圍小的變量。
轉(zhuǎn)換格式: 數(shù)據(jù)類型 變量 = (數(shù)據(jù)類型) 變量1
①示例

②底層實(shí)現(xiàn)原理

強(qiáng)轉(zhuǎn)成byte類型后只保留一個(gè)字節(jié)大小的數(shù)據(jù),即1101 1100(補(bǔ)碼形式),符號(hào)位是1說(shuō)明是負(fù)數(shù),將補(bǔ)碼轉(zhuǎn)換成原碼后為1010 0100,對(duì)應(yīng)的十進(jìn)制為:-36
注意事項(xiàng): 強(qiáng)制類型轉(zhuǎn)換可能造成數(shù)據(jù)(丟失)溢出浮點(diǎn)型強(qiáng)轉(zhuǎn)成整型,直接丟掉小數(shù)部分,保留整數(shù)部分返回。
到此這篇關(guān)于Java數(shù)據(jù)類型分類與基本數(shù)據(jù)類型轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Java數(shù)據(jù)類型轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過(guò)jstack分析解決進(jìn)程死鎖問(wèn)題實(shí)例代碼
這篇文章主要介紹了通過(guò)jstack分析解決進(jìn)程死鎖問(wèn)題實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
詳解Java如何判斷ResultSet結(jié)果集是否為空
ResultSet 表示 select 語(yǔ)句的查詢結(jié)果集。這篇文章主要為大家詳細(xì)介紹了Java如何判斷ResultSet結(jié)果集是否為空,感興趣的可以了解一下2023-02-02
Netty分布式pipeline管道Handler的添加代碼跟蹤解析
這篇文章主要介紹了Netty分布式pipeline管道Handler的添加代碼跟蹤解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Java對(duì)世界不同時(shí)區(qū)timezone之間時(shí)間轉(zhuǎn)換的處理方法
這篇文章主要介紹了Java對(duì)世界不同時(shí)區(qū)timezone之間時(shí)間轉(zhuǎn)換的處理方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Eclipse不自動(dòng)編譯java文件的終極解決方法
這篇文章主要介紹了Eclipse不自動(dòng)編譯java文件的終極解決方法,需要的朋友可以參考下2015-12-12
Tomcat使用IDEA遠(yuǎn)程Debug調(diào)試的講解
今天小編就為大家分享一篇關(guān)于Tomcat使用IDEA遠(yuǎn)程Debug調(diào)試的講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
Java異或運(yùn)算應(yīng)用場(chǎng)景詳解
這篇文章主要給大家介紹了關(guān)于Java異或運(yùn)算應(yīng)用場(chǎng)景的相關(guān)資料,異或運(yùn)算會(huì)應(yīng)用在很多算法題中,這里整理了幾個(gè)最常見的應(yīng)用場(chǎng)景,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07

