更新時間:2020-07-09 15:29:13 來源:動力節點 瀏覽3836次
boolean類型
Boolean在內存中占用一個字節。
當java編譯器把java源代碼編譯為字節碼時,會用int或byte來表示boolean。在java虛擬機中,用整數零來表示false,用任意一個非零整數表示true。
java虛擬機這種底層處理方式對java虛擬機是透明的,在java源程序中boolean類型的變量取值只能是true或false
byte、short、int、和long整數類型
byte、short、int、long都是整數類型,并且是有符號整數分別占用1、2、4、8個字節。
取值范圍分別是-127—127、-2的15次方到2的15次方減一、-2的31次方到2的31次方減一、-2的63次方到2的63次方減一
byte在內存中占用一個字節取值范圍是-128—127。在定義一個變量時。比如月份的取值是1到12。因此把代表月份的month變量定義為byte類型會節省內存空間。
在實際應用中通常把month定義為int類型,因為這樣可以簡化數據運算時強制類型轉換操作。
byte month=1;
month=month+2;//編譯錯誤需要強轉
month=(byte)(month+2);//編譯正確
Java中整型常量數值的默認類型是int類型
char字符類型
char是字符類型占用兩個字節,java語言對字符采用Unicode字符編碼。
char是按照字符存儲的,不管英文還是中文,固定占用占用2個字節,用來儲存Unicode字符。范圍在0-65536。
utf-8與utf-16都是處理Unicode編碼,它們的編碼規則不太相同
utf-16的編碼效率高,從字節到字符的相互轉換更簡單,進行字符串操作也更好。它適合在本地磁盤和內存之間使用,可以進行字符和字節直接的快速切換,
如java的內存編碼就采用utf-16編碼。但是它不適合在網絡直接的傳輸utf-16采用順序編碼,不能對單個字符的編碼值進行校驗。如果中間一個字符碼值損壞,后面所有碼值都受到影響。
因為網絡傳輸容易損壞字節流,一旦字節流損壞就很難恢復。
utf-8更適合網絡傳輸對字符采用單字節的存儲,對漢字采用三個字節表示,另外單字節的損壞也不會影響后面的其他字符,在編碼效率上介于GBK和utf-16之前,在編碼效率和安全上做了平衡
所以utf-8是理想的中文編碼方式
上面藍色字體部分看起來自相矛盾(用char聲明漢字)下面解釋一下Unicode編碼和UTF編碼
Unicode編碼由國際Unicode協會編制,收錄了全世界所有語言文字中的字符,是一種跨平臺的字符編碼USC(Universal Character Set)是指采用Unicode編碼的通用字符集。Unicode有兩種編碼方案。
用兩個字節(16位)編碼,采用這個編碼方案的字符集稱為UCS-2。java語言采用的就是兩個字節的編碼方案
用四個字節(32位)編碼(實際上只用了31位,最高位必須為0),采用這個編碼的字符集被稱為UCS-4。
UTF編碼:有些操作系統不完全支持16位或32位的Unicode編碼,UTF(UCS Transformation Format)編碼能夠把Unicode編碼轉換為操作系統支持的編碼,常見的UTF編碼有utf-8,utf-7,utf-16
總結:上面藍色字體看似矛盾的部分是因為utf編碼對Unicode(UCS)進行了轉換和優化
float和double浮點類型(帶小數)
float:占四個字節,共32位,稱為單精度浮點數
double:占八個字節,共64位,稱為雙精度浮點數
Java中的浮點型常量數值默認是double類型
注意:java提供的浮點類型不適合進行精確的運算
解決辦法:java.math.BigDecimal類可以滿足用戶的精度注意構造BigDecimal類時構造方法中的參數不建議是浮點類型需要轉成String類型
基本數據類型轉換
上面四類八種基本數據類型。除了boolean類型。整型浮點型和字符型數據可以進行混合轉換
從低位到高位會自動進行類型轉換,(向上轉型)
從高位到低位需要進行強制類型轉換。(向下轉型)
從低位到高位byte、char、short、int、long、float、double
float f=3.14;//編譯錯誤,不能把double類型直接賦值給float類型變量需要強制類型轉換
應用中,強制類型轉換有可能會導致數據溢出或者精度下降,應該避免使用強制類型轉換。
下面代碼中把int強制轉換為byte類型,會導致數據溢出。
以上就是動力節點java培訓機構的小編針對“四類Java8大基本數據類型詳解”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習