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

Java中的字符串String屬于引用數(shù)據(jù)類型。因為String是一個類
他們的默認值和字節(jié)大小如下:

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

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

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

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

注意事項:
在表達式中,小范圍類型的變量會自動轉換成當前較大范圍的類型再運算。
在表達式中,byte、short、char 是直接轉換成int類型參與運算的
例:

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

思考:為什么要將數(shù)據(jù)類型轉換成int進行計算?
因為當兩個數(shù)都比較小的時候對結果可能沒有影響,一旦兩個數(shù)字都比較大,例如110+120=230,超出了byte的取值范圍,所以索性直接轉換成int進行計算。
(2)強制類型轉換
類型范圍大的數(shù)據(jù)或者變量,不能直接賦值給類型范圍小的變量,會報錯。
可以強行將類型范圍大的變量、數(shù)據(jù)賦值給類型范圍小的變量。
轉換格式: 數(shù)據(jù)類型 變量 = (數(shù)據(jù)類型) 變量1
①示例

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

強轉成byte類型后只保留一個字節(jié)大小的數(shù)據(jù),即1101 1100(補碼形式),符號位是1說明是負數(shù),將補碼轉換成原碼后為1010 0100,對應的十進制為:-36
注意事項: 強制類型轉換可能造成數(shù)據(jù)(丟失)溢出浮點型強轉成整型,直接丟掉小數(shù)部分,保留整數(shù)部分返回。
到此這篇關于Java數(shù)據(jù)類型分類與基本數(shù)據(jù)類型轉換的文章就介紹到這了,更多相關Java數(shù)據(jù)類型轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Netty分布式pipeline管道Handler的添加代碼跟蹤解析
這篇文章主要介紹了Netty分布式pipeline管道Handler的添加代碼跟蹤解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03
Java對世界不同時區(qū)timezone之間時間轉換的處理方法
這篇文章主要介紹了Java對世界不同時區(qū)timezone之間時間轉換的處理方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07

