日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

面向?qū)ο缶幊蹋篔ava的簡(jiǎn)單數(shù)據(jù)類(lèi)型

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

簡(jiǎn)單數(shù)據(jù)類(lèi)型

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

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

表A Java簡(jiǎn)單數(shù)據(jù)類(lèi)型

簡(jiǎn)單類(lèi)型 大小 范圍/精度
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é) 整個(gè)Unicode字符集
boolean 1 位 True或者false

Java的簡(jiǎn)單數(shù)據(jù)類(lèi)型

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

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

Java的簡(jiǎn)單數(shù)據(jù)類(lèi)型并不是對(duì)象。為了采用面向?qū)ο蠓绞綄?duì)待Java簡(jiǎn)單數(shù)據(jù)類(lèi)型,你需要首先用類(lèi)封裝它們。

封裝類(lèi)

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

簡(jiǎn)單數(shù)據(jù)類(lèi)型初始化

在Java語(yǔ)言中,簡(jiǎn)單數(shù)據(jù)類(lèi)型作為類(lèi)的成員變量聲明時(shí)自動(dòng)初始化為默認(rèn)值,除非顯式地聲明。簡(jiǎn)單數(shù)據(jù)類(lèi)型為某一方法聲明局部變量時(shí)不會(huì)自動(dòng)地初始化而且會(huì)導(dǎo)致編譯器扔出類(lèi)似以下的錯(cuò)誤消息“Variable x may not have been initialized.(x變量沒(méi)有初始化)”表B定義了Java簡(jiǎn)單數(shù)據(jù)類(lèi)型的默認(rèn)值。
表B Java簡(jiǎn)單數(shù)據(jù)類(lèi)型的默認(rèn)值
類(lèi)型
默認(rèn)值
boolean
false
Byte
0
short
0
int
0
Long
0
Char
´u0000´
Float
0.0
double
0.0
Java簡(jiǎn)單數(shù)據(jù)類(lèi)型的默認(rèn)初始值
清單B 中的代碼顯示所有的Java簡(jiǎn)單數(shù)據(jù)類(lèi)型都用做了Initialization類(lèi)的成員變量。該例還顯示Initialization類(lèi)的構(gòu)造器中局部聲明了一個(gè)int變量。在不修改以上代碼的情況下,編譯器會(huì)在對(duì)以上代碼進(jìn)行編譯的時(shí)候扔出錯(cuò)誤。
一旦引發(fā)問(wèn)題的代碼行(那些引用未初始化變量導(dǎo)致錯(cuò)誤發(fā)生的代碼)被刪除或者注釋掉。程序成功編譯和執(zhí)行之后就會(huì)顯示以下的結(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定義了全套簡(jiǎn)單數(shù)據(jù)類(lèi)型。此外,Java取消了其他變成語(yǔ)言中的硬件和編譯器依附,允許程序員把注意力轉(zhuǎn)移到其他問(wèn)題上來(lái)。在下一篇文章里,我們將繼續(xù)討論某些經(jīng)常用到的、Java定義的復(fù)雜數(shù)據(jù)類(lèi)型,同時(shí)了解下如何利用它們來(lái)處理典型的編程問(wèn)題。
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多