最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java零基礎(chǔ)快速入門|數(shù)據(jù)類型(下)

2021-02-01 15:06 作者:動力節(jié)點(diǎn)小王本王  | 我要投稿



主要內(nèi)容

布爾型詳解

浮點(diǎn)型詳解

基本數(shù)據(jù)類型轉(zhuǎn)換

難點(diǎn)疑惑

布爾型詳解

Java 語言中布爾類型的值只包括true false,沒有其他值,不包括1 0,布爾類型的數(shù)據(jù)在開發(fā)中主要使用在邏輯判斷方面,例如:如果外面在下雨,我出門帶一把雨傘。如果明 天休息,咱們就一起出去玩耍吧。

請看一段程序以下程序中使用了控制語句,后面會詳細(xì)講, 先大概了解一下):

我們對以上程序進(jìn)行編譯并運(yùn)行,請看下圖運(yùn)行結(jié)果:

BooleanTest1 的運(yùn)行結(jié)果

接下來對以上程序進(jìn)行一個簡單的解釋:其中第 3 行代碼表示定義一個布爾類型的變量isRain 來表示是否下雨了,給其賦值true,以下的判斷邏輯是如果isRain true 則輸出"外面下雨了,出門要帶一把雨傘哦!",反之則輸出"外面天氣晴朗,走起吧!"。

9 行代碼表示定義一個布爾類型的變量sex 來表示性別,判斷邏輯是如果sex true 則輸出"哥們你好",反之則輸出"姐們你好"

接下來,我們再來看一段代碼,布爾類型變量的值是否可以使用 1 0

我們對以上的程序進(jìn)行編譯,請看下圖結(jié)果:

BooleanTest2.java 的編譯結(jié)果

?通過以上的測試結(jié)果可以看出,在?Java?中布爾類型的變量值不能使用1?0,只能使用true

false。

通過本小節(jié)的學(xué)習(xí),大家需要掌握的是在Java 語言中boolean 類型的數(shù)據(jù)只有兩個值,分別是true false,沒有其他值,并且boolean 類型在開發(fā)中主要使用在邏輯判斷方面。

?

浮點(diǎn)型詳解

浮點(diǎn)型數(shù)據(jù)實(shí)際上在內(nèi)存中存儲的時候大部分情況下都是存儲了數(shù)據(jù)的近似值,為什么呢?

這是因?yàn)樵诂F(xiàn)實(shí)世界中存在無窮的數(shù)據(jù),例如3.333333333333333333..,數(shù)據(jù)是無窮的, 但是內(nèi)存是有限的,所以只能存儲近似值,float 單精度占4 個字節(jié),double 雙精度占 8 個字節(jié), 相對來說 double 精度要高一些。由于浮點(diǎn)型數(shù)據(jù)存儲的是近似值,所以一般判斷兩個浮點(diǎn)型數(shù)據(jù)是否相等的操作很少。

在 java 語言中有這樣的一條規(guī)定:只要是浮點(diǎn)型的字面量,例如 1.0、3.14 等默認(rèn)會被當(dāng)做double 類型來處理,如果想讓程序?qū)⑵洚?dāng)做float 類型來處理,需要在字面量后面添加f/F。

請看以下代碼:

編譯報(bào)錯了:

編譯錯誤提示信息

為什么會編譯報(bào)錯呢?那是因?yàn)?3.0 默認(rèn)被當(dāng)做double 類型來處理,占用8 個字節(jié),前面f 變量是float 類型占用 4 個字節(jié),大容量無法直接賦值給小容量。

怎么修改呢?請看代碼:

運(yùn)行結(jié)果如下圖所示:

運(yùn)行結(jié)果

以上程序的第一種方案在 3.0 ?后面添加了F3.0F 被當(dāng)做float 類型來處理。第二種方案是進(jìn)行了強(qiáng)制類型轉(zhuǎn)換,第二種方案可能會存在精度損失。

?

基本數(shù)據(jù)類型轉(zhuǎn)換

基本數(shù)據(jù)類型之間是存在固定的轉(zhuǎn)換規(guī)則的,現(xiàn)總結(jié)出以下 6 條規(guī)則,無論是哪個程序,

將這 6 個規(guī)則套用進(jìn)去,問題迎刃而解:

  • 八種基本數(shù)據(jù)類型中,除boolean?類型不能轉(zhuǎn)換,剩下七種類型之間都可以進(jìn)行轉(zhuǎn)換;

  • 如果整數(shù)型字面量沒有超出 byte,short,char?的取值范圍,可以直接將其賦值給

  • byte,short,char 類型的變量;

  • 小容量向大容量轉(zhuǎn)換稱為自動類型轉(zhuǎn)換,容量從小到大的排序?yàn)椋?/span>byte?< short(char) < int?< long?< float?< double,其中 short char?都占用兩個字節(jié),但是char?可以表示更大的正整數(shù);

  • 大容量轉(zhuǎn)換成小容量,稱為強(qiáng)制類型轉(zhuǎn)換,編寫時必須添加“強(qiáng)制類型轉(zhuǎn)換符”,但運(yùn)行時可能出現(xiàn)精度損失,謹(jǐn)慎使用;

  • byte,short,char?類型混合運(yùn)算時,先各自轉(zhuǎn)換成int?類型再做運(yùn)算;

  • 多種數(shù)據(jù)類型混合運(yùn)算,各自先轉(zhuǎn)換成容量最大的那一種再做運(yùn)算;

接下來,根據(jù)以上的6 條規(guī)則,我們來看一下以下代碼,指出哪些代碼編譯報(bào)錯,以及怎么解決(大家注意看代碼的注釋信息):

編譯報(bào)錯,錯誤信息如下所示:

類型轉(zhuǎn)換編譯錯誤提示信息

如何修改,請看以下代碼:

運(yùn)行結(jié)果如下圖所示:

類型轉(zhuǎn)換測試

通過本小節(jié)的學(xué)習(xí),大家主要掌握基本數(shù)據(jù)類型轉(zhuǎn)換的6 條規(guī)則,以后遇到類似的問題直接套用規(guī)則即可。

?

難點(diǎn)解惑

本章節(jié)的難點(diǎn)主要還是數(shù)據(jù)類型相互轉(zhuǎn)換這塊,例如:byte a?= 3;這行代碼為什么可以編譯通過呢?

按說 3 int 類型,而a 變量是byte 類型,大容量轉(zhuǎn)換成小容量不是應(yīng)該使用強(qiáng)制類型轉(zhuǎn)換符嗎,這里沒有使用,也可以編譯通過。

這是因?yàn)?Java 中固定的語法規(guī)則規(guī)定的,當(dāng)一個整數(shù)沒有超出 byte 類型取值范圍時,可以直接賦值給 byte 類型的變量,其實(shí)這一設(shè)計(jì)也是為了方便程序員寫代碼。

另外,我們?nèi)绻谝陨洗a再添加這行代碼:byte b?= a?+ 4;這行代碼為什么又編譯報(bào)錯了呢?

按說a 3,3+4 7,這個 7 并沒有超出byte 取值范圍,為什么編譯報(bào)錯呢?這是因byte 類型的a int 類型的 4 求和,結(jié)果為int 類型,并且對于以上代碼來說 a 是一個變量, 變量就是一個不確定的值,所以編譯器會認(rèn)為a?+ 4 可能會超出byte 取值范圍,所以編譯報(bào)錯了。

如果我們程序是這樣寫的:byte?b?= 3?+ 4;對于這行代碼來說,編譯又通過了,這是因?yàn)?3 4 不是變量,都是確定的值,編譯器會直接檢測出3+4 等于 7,這個 7 并沒有超出范圍,所以編譯又通過了。


章節(jié)小結(jié)

通過本章節(jié)內(nèi)容的學(xué)習(xí):

需要理解數(shù)據(jù)類型在程序中的作用,需要掌握在?Java?語言中數(shù)據(jù)類型包括哪些,其中基本數(shù)據(jù)類型又包括哪些,每個基本數(shù)據(jù)類型所占用的字節(jié)數(shù)量,byte?類型取值范圍等。

另外需要理解字符編碼在程序中的作用。還有每一種數(shù)據(jù)類型特有的語法機(jī)制,包括整數(shù)型字面值默認(rèn)當(dāng)做int?類型處理,如果以long?形式表示,需要在字面值后添加?Ll;

浮點(diǎn)型字面量默認(rèn)被當(dāng)做?double?處理,后面添加?F/f?才可以被當(dāng)做float?類型;而布爾型Java?中只有true?false?沒有其他值;字符型變量完全可以存儲1?個漢字等。

除了以上描述之外,還有相對來說難度較大的類型之間的相互轉(zhuǎn)換,這個就需要大家記住相應(yīng)的轉(zhuǎn)換規(guī)則了。

最后附Java零基礎(chǔ)視頻教程給大家,配合學(xué)習(xí)效果更佳!!


Java零基礎(chǔ)快速入門|數(shù)據(jù)類型(下)的評論 (共 條)

分享到微博請遵守國家法律
景泰县| 诸暨市| 资源县| 沙湾县| 镇平县| 方城县| 长兴县| 石河子市| 麦盖提县| 眉山市| 永定县| 庄河市| 芮城县| 花莲市| 舟山市| 新乡县| 营口市| 本溪| 长宁区| 芷江| 麟游县| 友谊县| 探索| 苗栗县| 新密市| 忻城县| 类乌齐县| 沂水县| 浙江省| 甘肃省| 宝坻区| 囊谦县| 蒙山县| 抚顺县| 林芝县| 长丰县| 陈巴尔虎旗| 青铜峡市| 东至县| 观塘区| 宝山区|