文本關(guān)鍵字:8種、基本數(shù)據(jù)類(lèi)型、整數(shù)類(lèi)型、浮點(diǎn)類(lèi)型、字符類(lèi)型、布爾類(lèi)型
在Java中,所使用到的類(lèi)型可以分為兩大類(lèi),一類(lèi)是基本數(shù)據(jù)類(lèi)型,一共有8種,包含:整數(shù),小數(shù),字符,布爾。另外一類(lèi)是引用類(lèi)型,包含:字符串,數(shù)組以及各種Java類(lèi)。
整數(shù)類(lèi)型是一個(gè)很常用,也比較簡(jiǎn)單的類(lèi)型,在計(jì)算機(jī)中以二進(jìn)制的方式存儲(chǔ),其中有一位是符號(hào)位。
long:-2^63 ~ 2^63 - 1
對(duì)于浮點(diǎn)(小數(shù))類(lèi)型,存儲(chǔ)的方式與整數(shù)有所不同,其中符號(hào)位固定為1位,另外兩部分為指數(shù)部分和小數(shù)部分。我們都學(xué)過(guò)科學(xué)計(jì)數(shù)法的表示方式,對(duì)于十進(jìn)制,小數(shù)點(diǎn)前的部分的取值范圍為1-9,在存儲(chǔ)前也會(huì)整理成二進(jìn)制的形式,會(huì)變成(+/-)1.b × 2^a。那么指數(shù)部分對(duì)應(yīng)的就是a,尾數(shù)部分對(duì)應(yīng)的就是b。
對(duì)于float,指數(shù)部分為8位,尾數(shù)部分為23位。對(duì)于double,指數(shù)部分為11位,尾數(shù)部分為52位。
double:約4.9 × 10^-432~1.7 × 10^308,精度為15~16位
對(duì)于字符類(lèi)型,在進(jìn)行存儲(chǔ)時(shí),也同樣是一個(gè)整數(shù),只不過(guò)在使用時(shí)會(huì)進(jìn)行編碼。說(shuō)的直白一些就是,建立起了一個(gè)數(shù)字和字符之間的對(duì)應(yīng)關(guān)系,只要明確字符對(duì)應(yīng)的數(shù)字,或者直接將字符給出,都能夠正確表示出一個(gè)字符。
char
布爾類(lèi)型是一個(gè)范圍最小的數(shù)據(jù)類(lèi)型,只用一個(gè)二進(jìn)制位就可以來(lái)記錄,0表示false-假,1表示true-真。
當(dāng)我們?cè)谑褂靡粋€(gè)數(shù)據(jù)類(lèi)型時(shí),總會(huì)進(jìn)行一些直接賦值的操作,完整的格式如下:
如:int i = 5;char c = '中';double = 3.14;那么出現(xiàn)在等號(hào)右側(cè)的值就被稱(chēng)為字面值。
圖中黑色的部分,可以自動(dòng)進(jìn)行轉(zhuǎn)換,并且不會(huì)出現(xiàn)任何使用上的問(wèn)題,只不過(guò)存儲(chǔ)數(shù)據(jù)空間需要變大些,這也就是由低精度向高精度的轉(zhuǎn)換。
其中紅色箭頭的部分,也可以自動(dòng)進(jìn)行轉(zhuǎn)換,即:代碼上不需要添加轉(zhuǎn)換的操作,且編譯不會(huì)出現(xiàn)問(wèn)題。但是在使用時(shí)會(huì)出現(xiàn)精度丟失的問(wèn)題,因?yàn)閷?duì)于整數(shù)類(lèi)型,在其所支持的存儲(chǔ)范圍內(nèi)精度都是可以保證的,而對(duì)于float和double類(lèi)型,精度只有相應(yīng)的6~7和15~16位,所以在使用時(shí)一定要注意!
那什么時(shí)候需要手動(dòng)來(lái)進(jìn)行類(lèi)型轉(zhuǎn)換呢?就是與箭頭方向相反時(shí),以及由高精度到低精度來(lái)進(jìn)行賦值操作時(shí),必須要手動(dòng)進(jìn)行強(qiáng)制轉(zhuǎn)換。這意味著,你知道這其中的風(fēng)險(xiǎn),并一定要這樣做,那么無(wú)法被記錄的字節(jié)將被直接截?cái)嗪蛠G棄,最高位被識(shí)別為符號(hào)位。所以,只有當(dāng)數(shù)據(jù)本身不會(huì)超出目標(biāo)數(shù)據(jù)類(lèi)型時(shí),我們才會(huì)進(jìn)行轉(zhuǎn)換,否則有可能會(huì)得到各種奇怪的結(jié)果。
當(dāng)我們?cè)谑褂帽磉_(dá)式進(jìn)行計(jì)算時(shí),如最基本的四則運(yùn)算,加減乘除。
short s1 = 40;
short s2 = 40;
short s3 = s1 + s2;// 該行編譯錯(cuò)誤,why?
short s4 = (short)(s1 + s2);// 編譯通過(guò)
對(duì)于以上的情況,是因?yàn)槌霈F(xiàn)了類(lèi)型提升,當(dāng)符號(hào)兩側(cè)出現(xiàn)整數(shù)時(shí),運(yùn)算結(jié)果的類(lèi)型將被提升為默認(rèn)的整數(shù)類(lèi)型:int,而將int類(lèi)型賦值給short是需要類(lèi)型轉(zhuǎn)換的。同樣,運(yùn)算符號(hào)兩側(cè)出現(xiàn)小數(shù)類(lèi)型時(shí),運(yùn)算結(jié)果的類(lèi)型將被提升為默認(rèn)的浮點(diǎn)數(shù)類(lèi)型:double,在賦值給其他變量時(shí)同樣要進(jìn)行類(lèi)型轉(zhuǎn)換。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。
文章題目:Java基本數(shù)據(jù)類(lèi)型與類(lèi)型轉(zhuǎn)換-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://www.sd-ha.com/article2/dsdjic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、品牌網(wǎng)站制作、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷(xiāo)推廣、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容