

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 6/6JAVA8種基本數(shù)據(jù)類型 java中8種基本類型 基本類型,或者叫做內(nèi)置類型,是JAVA中不同于類的特殊類型。它們是我們編程中使用最頻繁的類型,因此面試題中也總少不了它們的身影,在這篇文章中我們將從面試中常考的幾個方面來回顧一下與基本類型相關(guān)的知識?;绢愋凸灿邪朔N,它們分別都有相對應的包裝類。基本類型可以分為三類,字符類型char,布爾類型boolean以及數(shù)值類型byte、short、int、long、float、double。數(shù)值類型又可以分為整數(shù)類型byte、short、int、long和浮點數(shù)類型float、double。JAVA中的數(shù)值類型不存在無符號的,它們的取值范圍是固
2、定的,不會隨著機器硬件環(huán)境或者操作系統(tǒng)的改變而改變。實際上,JAVA中還存在另外一種基本類型void,它也有對應的包裝類 http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Void,不過我們無法直接對它們進行操作。對于數(shù)值類型的基本類型的取值范圍,我們無需強制去記憶,因為它們的值都已經(jīng)以常量的形式定義在對應的包裝類中了。請看下面的例子:復制內(nèi)容到剪貼板代碼:public class PrimitiveTypeTest public static void main(String args) / byteSystem.out.println(基本類型:by
3、te 二進制位數(shù): + Byte.SIZE);System.out.println(包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Byte);System.out.println(最小值:Byte.MIN_VALUE= + Byte.MIN_VALUE);System.out.println(最大值:Byte.MAX_VALUE= + Byte.MAX_VALUE);System.out.println();/ shortSystem.out.println(基本類型:short 二進制位數(shù): + Short.SIZE);System.out
4、.println(包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Short);System.out.println(最小值:Short.MIN_VALUE= + Short.MIN_VALUE);System.out.println(最大值:Short.MAX_VALUE= + Short.MAX_VALUE);System.out.println();/ intSystem.out.println(基本類型:int 二進制位數(shù): + Integer.SIZE);System.out.println(包裝類:http:/./doc/f5a2b
5、56825c52cc58bd6bee5.html ng.Integer);System.out.println(最小值:Integer.MIN_VALUE= + Integer.MIN_VALUE);System.out.println(最大值:Integer.MAX_VALUE= + Integer.MAX_VALUE);System.out.println();/ longSystem.out.println(基本類型:long 二進制位數(shù): + Long.SIZE);System.out.println(包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.h
6、tml ng.Long);System.out.println(最小值:Long.MIN_VALUE= + Long.MIN_VALUE);System.out.println(最大值:Long.MAX_VALUE= + Long.MAX_VALUE);System.out.println();/ floatSystem.out.println(基本類型:float 二進制位數(shù): + Float.SIZE);System.out.println(包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Float);System.out.println(
7、最小值:Float.MIN_VALUE= + Float.MIN_VALUE);System.out.println(最大值:Float.MAX_VALUE= + Float.MAX_VALUE);System.out.println();/ doubleSystem.out.println(基本類型:double 二進制位數(shù): + Double.SIZE);System.out.println(包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Double);System.out.println(最小值:Double.MIN_VALUE= +
8、Double.MIN_VALUE);System.out.println(最大值:D ouble.MAX_VALUE= + Double.MAX_VALUE); System.out.println();/ charSystem.out.println(基本類型:char 二進制位數(shù): + Character.SIZE);System.out.println(包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Character);/ 以數(shù)值形式而不是字符形式將Character.MIN_VALUE輸出到控制臺System.out.println(
9、最小值:Character.MIN_VALUE=+ (int) Character.MIN_VALUE);/ 以數(shù)值形式而不是字符形式將Character.MAX_VALUE輸出到控制臺System.out.println(最大值:Character.MAX_VALUE=+ (int) Character.MAX_VALUE);運行結(jié)果:1、基本類型:byte 二進制位數(shù):82、包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Byte3、最小值:Byte.MIN_VALUE=-1284、最大值:Byte.MAX_VALUE=1275、6、基本類
10、型:short 二進制位數(shù):167、包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Short8、最小值:Short.MIN_VALUE=-327689、最大值:Short.MAX_VALUE=3276710、11、基本類型:int 二進制位數(shù):3212、包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Integer13、最小值:Integer.MIN_VALUE=-214748364814、最大值:Integer.MAX_VALUE=214748364715、16、基本類型:long 二進制位
11、數(shù):6417、包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Long18、最小值:Long.MIN_VALUE=-922337203685477580819、最大值:Long.MAX_VALUE=922337203685477580720、21、基本類型:float 二進制位數(shù):3222、包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Float23、最小值:Float.MIN_VALUE=1.4E-4524、最大值:Float.MAX_VALUE=3.4028235E3825、26、基本類型
12、:double 二進制位數(shù):6427、包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Double28、最小值:Double.MIN_VALUE=4.9E-32429、最大值:Double.MAX_VALUE=1.7976931348623157E30830、31、基本類型:char 二進制位數(shù):1632、包裝類:http:/./doc/f5a2b56825c52cc58bd6bee5.html ng.Character33、最小值:Character.MIN_VALUE=034、最大值:Character.MAX_VALUE=65535Flo
13、at和Double的最小值和最大值都是以科學記數(shù)法的形式輸出的,結(jié)尾的“E+數(shù)字”表示E之前的數(shù)字要乘以10的多少倍。比如3.14E3就是3.141000=3140,3.14E-3就是3.14/1000=0.00314。大家將運行結(jié)果與上表信息仔細比較就會發(fā)現(xiàn)float、double兩種類型的最小值與Float.MIN_VALUE、 Double.MIN_VALUE的值并不相同,這是為什么呢?實際上Float.MIN_VALUE和Double.MIN_VALUE分別指的是 float和double類型所能表示的最小正數(shù)。也就是說存在這樣一種情況,0到Float.MIN_VALUE之間的值flo
14、at類型無法表示,0 到Double.MIN_VALUE之間的值double類型無法表示。這并沒有什么好奇怪的,因為這些范圍內(nèi)的數(shù)值超出了它們的精度范圍。基本類型存儲在棧中,因此它們的存取速度要快于存儲在堆中的對應包裝類的實例對象。從Java5.0(1.5)開始,JAVA虛擬機(Java Virtual Machine)可以完成基本類型和它們對應包裝類之間的自動轉(zhuǎn)換。因此我們在賦值、參數(shù)傳遞以及數(shù)學運算的時候像使用基本類型一樣使用它們的包裝類,但這并不意味著你可以通過基本 類型調(diào)用它們的包裝類才具有的方法。另外,所有基本類型(包括void)的包裝類都使用了final修飾,因此我們無法繼承它們擴
15、展新的類,也無法重寫它們的任何方法。 各種數(shù)值類型之間的賦值與轉(zhuǎn)換遵循什么規(guī)律呢?我們來看下面這個例子:復制內(nèi)容到剪貼板代碼:public class PrimitiveTypeTest public static void main(String args) / 給byte類型變量賦值時,數(shù)字后無需后綴標識byte byte_a = 1;/ 編譯器會做范圍檢查,如果賦予的值超出了范圍就會報錯/ byte byte_b = 1000;/ 把一個long型值賦值給byte型變量,編譯時會報錯,即使這個值沒有超出byte類型的取值范圍/ byte byte_c = 1L;/ 給short類型變量賦
16、值時,數(shù)字后無需后綴標識short short_a = 1;/ 編譯器會做范圍檢查,如果賦予的值超出了范圍就會報錯/ short short_b = 70000;/ 把一個long型值賦值給short型變量,編譯時會報錯,即使這個值沒有超出short類型的取值范圍/ byte short_c = 1L;/ 給short類型變量賦值時,數(shù)字后無需后綴標識int int_a = 1;/ 編譯器會做范圍檢查,如果賦予的值超出了范圍就會報錯/ int int_b = 2200000000;/ 把一個long型值賦值給int型變量,編譯時會報錯,即使這個值沒有超出int類型的取值范圍/ int int_
17、c = 1L;/ 可以把一個int型值直接賦值給long型變量,數(shù)字后無需后綴標識long long_a = 1;/ 如果給long型變量賦予的值超出了int型值的范圍,數(shù)字后必須加L(不區(qū)分大小寫)標識long long_b = 2200000000;/ 編譯器會做范圍檢查,如果賦予的值超出了范圍就會報錯/ long long_c = 9300000000000000000L;/ 可以把一個int型值直接賦值給float型變量float float_a = 1;/ 可以把一個long型值直接賦值給float型變量float float_b = 1;/ 沒有F(不區(qū)分大小寫)后綴標識的浮點數(shù)默
18、認為double型的,不能將它直接賦值給float型變量/ float float_c = 1.0;/ float型數(shù)值需要有一個F(不區(qū)分大小寫)后綴標識float float_d = 1.0F;/ 把一個double型值賦值給float型變量,編譯時會報錯,即使這個值沒有超出float類型的取值范圍/ float float_e = 1.0D;/ 編譯器會做范圍檢查,如果賦予的值超出了范圍就會報錯/ float float_f = 3.5000000E38F;/ 可以把一個int型值直接賦值給double型變量double double_a = 1;/ 可以把一個long型值直接賦值給do
19、uble型變量double double_b = 1;/ 可以把一個float型值直接賦值給double型變量double double_c = 1F;/ 不帶后綴標識的浮點數(shù)默認為double類型的,可以直接賦值double double_d = 1.0;/ 也可以給數(shù)字增加一個D(不區(qū)分大小寫)后綴標識,明確標出它是double類型的double double_e = 1.0D;/ 編譯器會做范圍檢查,如 果賦予的值超出了范圍就會報錯 / double double_f = 1.8000000000000000E308D;/ 把一個double型值賦值給一個byte類型變量,編譯時會報錯,
20、即使這個值沒有超出byte類型的取值范圍/ byte byte_d = 1.0D;/ 把一個double型值賦值給一個short類型變量,編譯時會報錯,即使這個值沒有超出short類型的取值范圍/ short short_d = 1.0D;/ 把一個double型值賦值給一個int類型變量,編譯時會報錯,即使這個值沒有超出int類型的取值范圍/ int int_d = 1.0D;/ 把一個double型值賦值給一個long類型變量,編譯時會報錯,即使這個值沒有超出long類型的取值范圍/ long long_d = 1.0D;/ 可以用字符初始化一個char型變量char char_a = a;/ 也可以用一個int型數(shù)值初始化char型變量char char_b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于水電安裝合同范本
- 出國保姆合同范本
- 拌合站加工合同范本
- 萬科景觀合同范本
- 北京市裝飾合同范例
- 冷庫玉米加工合同范本
- 合作送外賣合同范例
- 公司結(jié)算合同范本
- 地基注漿加固合同范本
- 光伏發(fā)電代理合同范本
- 《Unit2Myfavoriteseason》教學設(shè)計課件
- 七年級上冊生物期末測試卷(含答案)
- 路基分層-表格-
- 離婚協(xié)議書電子版下載
- 中醫(yī)藥膳學124張課件
- 汽車法規(guī)第一章
- Kappa測試數(shù)據(jù)分析報告
- 視知覺原理課件
- 建筑工程計量與計價高職PPT完整全套教學課件
- 網(wǎng)店運營PPT完整全套教學課件
- 用戶操作手冊-Tagetik合并財務(wù)報表系統(tǒng)實施項目
評論
0/150
提交評論