dwys0343

          技術(shù)整理

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            1 Posts :: 16 Stories :: 0 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(3)

          我參與的團(tuán)隊

          搜索

          •  

          最新評論

            數(shù)據(jù)類型就是對內(nèi)存位置的抽象表達(dá)。程序員可以利用多種數(shù)據(jù)類型:某些由編程語言定義,某些由外部庫定義,還有些則由程序員來定義。很多編程語言都依賴于特定的計算機(jī)類型和對數(shù)據(jù)類型屬性的具體編譯實現(xiàn),比如word和integer數(shù)據(jù)類型的大小等。另一方面,Java的虛擬機(jī)負(fù)責(zé)定義其內(nèi)置數(shù)據(jù)類型的各方面內(nèi)容。這就意味著不管Java虛擬機(jī)(JVM)運行在何等低級的操作系統(tǒng)之上,數(shù)據(jù)類型的屬性都是完全一樣的。

            簡單數(shù)據(jù)類型

            簡單數(shù)據(jù)類型是不能再簡化的、內(nèi)置的數(shù)據(jù)類型,由編程語言定義,表示真實的數(shù)字、字符和整數(shù)。更大、更復(fù)雜的數(shù)據(jù)類型可以采用簡單數(shù)據(jù)類型的組合來定義。在大多數(shù)情況下,簡單數(shù)據(jù)類型都具有其硬件等價物。比方說,int簡單類型有時存放在32位硬件寄存器內(nèi)。Java提供了幾類簡單數(shù)據(jù)類型表示數(shù)字和字符。

            簡單數(shù)據(jù)類型通常劃分為以下幾種類別:實數(shù)、整數(shù)、字符和布爾值。這些類別中又包含了多種簡單類型。比如說,Java定義了兩種簡單類型:float和double,它們都屬于實數(shù)類別,另外4種簡單類型:byte、short、int和long則都屬于整數(shù)類別。此外還有一種簡單類型char則歸于字符類型。布爾值類別只有一種簡單類型:boolean。表A詳細(xì)列出了Java的簡單數(shù)據(jù)類型.

            表A Java簡單數(shù)據(jù)類型

            簡單類型 大小 范圍/精度

            float 4 字節(jié) 32位IEEE 754單精度

            double 8 字節(jié) 64位IEEE 754雙精度

            byte 1字節(jié) -128到127

            short 2 字節(jié) -32,768到32,767

            int 4 字節(jié) -2,147,483,648到2,147,483,647

            long 8 字節(jié) -9,223,372,036,854,775,808到9,223,372,036, 854,775,807

            char 2 字節(jié) 整個Unicode字符集

            boolean 1 位 True或者false

            Java的簡單數(shù)據(jù)類型

            Java中的所有數(shù)字變量都是有符號的,Java不允許數(shù)據(jù)類型之間隨意的轉(zhuǎn)換。只有數(shù)字變量之間可以進(jìn)行類型轉(zhuǎn)換。比如,boolean就不能轉(zhuǎn)換為其他數(shù)據(jù)類型,而且其他數(shù)據(jù)類型也不能轉(zhuǎn)換為boolean。

            因為Java的簡單數(shù)據(jù)類型都經(jīng)過準(zhǔn)確定義,而且直接內(nèi)存訪問也是不允許的,所以在Java語言中取消了sizeof運算符。

            Java的簡單數(shù)據(jù)類型并不是對象。為了采用面向?qū)ο蠓绞綄Υ齁ava簡單數(shù)據(jù)類型,你需要首先用類封裝它們。

            封裝類

            Java還提供了Byte、Short、Boolean、Character、Integer、Double、Float和Long等內(nèi)置的封裝類。這些封裝(wrapper)類提供了很直觀的實用方法。比如,Byte、Float, Integer、Long和Double類都具有doubleValue()方法,通過它可以把存儲在類的實例中的值轉(zhuǎn)換為Double類型。還有,所有的封裝類都提供了靜態(tài)的valueOf(String s)方法把給定的String轉(zhuǎn)換為對應(yīng)的簡單類型。清單A的代碼演示了這些封裝類的一些用法。

            簡單數(shù)據(jù)類型初始化

            在Java語言中,簡單數(shù)據(jù)類型作為類的成員變量聲明時自動初始化為默認(rèn)值,除非顯式地聲明。簡單數(shù)據(jù)類型為某一方法聲明局部變量時不會自動地初始化而且會導(dǎo)致編譯器扔出類似以下的錯誤消息“Variable x may not have been initialized.(x變量沒有初始化)”表B定義了Java簡單數(shù)據(jù)類型的默認(rèn)值。

            表B Java簡單數(shù)據(jù)類型的默認(rèn)值

            類型

            默認(rèn)值

            boolean

            false

            Byte

            0

            short

            0

            int

            0

            Long

            0

            Char

            ′\u0000′

            Float

            0.0

            double

            0.0

            Java簡單數(shù)據(jù)類型的默認(rèn)初始值

            清單B 中的代碼顯示所有的Java簡單數(shù)據(jù)類型都用做了Initialization類的成員變量。該例還顯示Initialization類的構(gòu)造器中局部聲明了一個int變量。在不修改以上代碼的情況下,編譯器會在對以上代碼進(jìn)行編譯的時候扔出錯誤。
            一旦引發(fā)問題的代碼行(那些引用未初始化變量導(dǎo)致錯誤發(fā)生的代碼)被刪除或者注釋掉。程序成功編譯和執(zhí)行之后就會顯示以下的結(jié)果:

            byte: 0

            short: 0

            int: 0

            long: 0

            float: 0.0

            double: 0.0

            char: 0

            boolean: false

            我們還可以顯式地初始化成員變量為其他值,如以下代碼所示:

            byte b = 5;

            short s = 123;

            int i = 1234;

            long l = 12345;

            float f = 123.45f;

            double d = 12345.678;

            char c = ′A′;

            boolean z = true;

            小結(jié)

            Java定義了全套簡單數(shù)據(jù)類型。此外,Java取消了其他變成語言中的硬件和編譯器依附,允許程序員把注意力轉(zhuǎn)移到其他問題上來。在下一篇文章里,我們將繼續(xù)討論某些經(jīng)常用到的、Java定義的復(fù)雜數(shù)據(jù)類型,同時了解下如何利用它們來處理典型的編程問題。
          posted on 2007-01-24 13:36 特蘭克斯 閱讀(165) 評論(0)  編輯  收藏 所屬分類: J2SE
          主站蜘蛛池模板: 尉犁县| 兖州市| 湘乡市| 绿春县| 娄底市| 湖口县| 木兰县| 成都市| 铜鼓县| 江城| 通辽市| 泸溪县| 丘北县| 汾西县| 元江| 香格里拉县| 安徽省| 双桥区| 驻马店市| 通山县| 建水县| 昌邑市| 交城县| 台东县| 邻水| 汪清县| 肥乡县| 海原县| 淄博市| 泾源县| 屏南县| 同仁县| 西峡县| 酉阳| 鄱阳县| 韶关市| 吐鲁番市| 灯塔市| 武宁县| 富阳市| 永丰县|