成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

從0開始學(xué)JAVA(1) 數(shù)據(jù)類型

bigdevil_s / 1618人閱讀

摘要:且可以使用進(jìn)行中文保存,是因?yàn)槭褂眠@種進(jìn)制的編碼。那么怎么解決呢看出來(lái)區(qū)別了嗎由于的自動(dòng)類型轉(zhuǎn)換,會(huì)轉(zhuǎn)換為類型,所以數(shù)據(jù)溢出的問(wèn)題就解決了。除非到不得已情況,不然不要輕易使用強(qiáng)制類型轉(zhuǎn)換。

Java語(yǔ)言中對(duì)于數(shù)據(jù)類型分為2種

基本數(shù)據(jù)類型(一些具體的數(shù)字單元,例如 1 、 1.1、)

數(shù)值型:

整形:byte、 short、int、 long -->默認(rèn)值:0

浮點(diǎn)型 float、double -->默認(rèn)值:0.0

布爾型: boolean -->默認(rèn)值:false

字符型:char -->默認(rèn)值"u0000"

引用數(shù)據(jù)類型(牽扯到數(shù)據(jù)內(nèi)存的使用)

數(shù)組、類型、接口 -->默認(rèn)值:null

浮點(diǎn)型數(shù)據(jù)

對(duì)于java中的小數(shù)類型的常量,其對(duì)應(yīng)的類型都是double類型,就類似整數(shù)類型的常量對(duì)應(yīng)的是int類型。

字符型

在任何編程語(yǔ)言中,字符都可以和int相互轉(zhuǎn)換,字符轉(zhuǎn)化成int將得到對(duì)應(yīng)的系統(tǒng)編碼。
例子:

int num5 = "A";
System.out.println(num5);//65

字符編碼參考:

大寫字母"A"(65)~"Z"(90)
小寫字母"a"(97)~"z"(122)
數(shù)字范圍 "0"(48)~"9"(57)

可以發(fā)現(xiàn)大小寫字母之間的編碼差32,由此可以實(shí)現(xiàn)英文字母大小寫的轉(zhuǎn)換。
且java可以使用char進(jìn)行中文保存,是因?yàn)閖ava使用unicode這種16進(jìn)制的編碼。

數(shù)據(jù)類型選擇規(guī)則

如果要描述數(shù)字,首選int、double

如果要進(jìn)行數(shù)據(jù)傳輸或者文字編碼使用byte類型(二進(jìn)制處理操作)

處理中文最方便操作使用的是char

描述內(nèi)存或者文件大小、或者描述表的主鍵使用long

注意 數(shù)據(jù)溢出問(wèn)題

數(shù)據(jù)類型可以進(jìn)行轉(zhuǎn)換的,范圍小的數(shù)據(jù)類型可以自動(dòng)轉(zhuǎn)換為大的數(shù)據(jù)類型,但是數(shù)據(jù)大的要轉(zhuǎn)為小的則需要進(jìn)行強(qiáng)制轉(zhuǎn)換,同時(shí)還需要注意因此帶來(lái)的數(shù)據(jù)溢出問(wèn)題。示例如下。

猜猜結(jié)果是什么?
int num = Integer.MAX_VALUE;
System.out.println(num + 1);

結(jié)果是-2147483648,為什么呢?
因?yàn)閚um是int類型,int類型得最大值是2147483647,那么當(dāng)+1之后,由于int+int的值還是int類型,而結(jié)果顯然大于了這個(gè)數(shù)字,因此造成了數(shù)據(jù)溢出,導(dǎo)致結(jié)果計(jì)算錯(cuò)誤。
那么怎么解決呢?

int num1 = Integer.MAX_VALUE;
System.out.println(num + 1L);

看出來(lái)區(qū)別了嗎?由于java的自動(dòng)類型轉(zhuǎn)換,num+1L會(huì)轉(zhuǎn)換為long類型,所以數(shù)據(jù)溢出的問(wèn)題就解決了。

強(qiáng)制轉(zhuǎn)換可能導(dǎo)致數(shù)據(jù)溢出
隱式轉(zhuǎn)換也叫作自動(dòng)類型轉(zhuǎn)換, 由系統(tǒng)自動(dòng)完成.從存儲(chǔ)范圍小的類型到存儲(chǔ)范圍大的類型
byte ->short(char)->int->long->float->double

顯示類型轉(zhuǎn)換也叫作強(qiáng)制類型轉(zhuǎn)換, 是從存儲(chǔ)范圍大的類型到存儲(chǔ)范圍小的類型.
顯示類型轉(zhuǎn)換需要進(jìn)行聲明,但是當(dāng)心會(huì)出現(xiàn)精度丟失的問(wèn)題如:

long longNum = Integer.MAX_VALUE + 1;
int num2 = (int)longNum;
System.out.println(num2);//-2147483648

結(jié)果顯然是因?yàn)榫葋G失導(dǎo)致的結(jié)果不對(duì),此處需要注意。除非到不得已情況,不然不要輕易使用強(qiáng)制類型轉(zhuǎn)換。

byte類型需要注意的地方

那么再思考一下如下代碼結(jié)果是什么呢?

//此處20是int類型,但java對(duì)byte類型賦值有特殊處理
//如果該值沒有超過(guò)byte最大值,則會(huì)自動(dòng)轉(zhuǎn)換為byte類型進(jìn)行賦值。
//如果超過(guò)byte最大值,才會(huì)要求強(qiáng)制轉(zhuǎn)換
byte num4 = 20;
System.out.println(num4 * num4 );

答案是:400
那為什么此處400超過(guò)byte最大值127而未發(fā)生數(shù)據(jù)溢出?
再看下如下代碼

byte num4 = 20;
byte result = num4 * num4;
System.out.println(result);

結(jié)果是什么?
會(huì)編譯錯(cuò)誤!為什么?因?yàn)榇藭r(shí)num4 * num4 的結(jié)果超過(guò)了byte類型最大值,所以是int類型,那么此處就需要強(qiáng)制轉(zhuǎn)換才能夠防止編譯錯(cuò)誤。
當(dāng)然實(shí)際中不會(huì)這么寫,此處只是為了說(shuō)明byte的變量賦值機(jī)制。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76231.html

相關(guān)文章

  • 開始學(xué) Kotlin 之「2」數(shù)據(jù)類型

    摘要:前言大家好,這里是從零開始學(xué)之?dāng)?shù)據(jù)類型,本文首發(fā)于公眾號(hào),歡迎前往大家關(guān)注。輸出布爾類型中的布爾類型用表示,它的值有和。若需要可空引用時(shí),布爾類型的值會(huì)被裝箱。此時(shí)程序會(huì)拋出異常最后從零開始學(xué)之?dāng)?shù)據(jù)類型到這里就結(jié)束了。 前言 大家好,這里是「從零開始學(xué) Kotlin 之『2 』數(shù)據(jù)類型」,本文首發(fā)于公眾號(hào)「Binguner」,歡迎前往大家關(guān)注。我會(huì)每周分享一些關(guān)于 Android 和...

    Awbeci 評(píng)論0 收藏0
  • 開始學(xué) Java 之 基礎(chǔ)語(yǔ)法(中)

    摘要:下面開始今天的知識(shí),先看下基礎(chǔ)語(yǔ)法的總綱今天我們接著學(xué)習(xí)變量使用變量的注意事項(xiàng)數(shù)據(jù)類型和類型轉(zhuǎn)換。推薦閱讀從零開始學(xué)之基礎(chǔ)語(yǔ)法上從零開始學(xué)之基礎(chǔ)概述本文原創(chuàng)發(fā)布于微信公眾號(hào),編程思維成長(zhǎng)正能量,關(guān)注并回復(fù)編程閱讀等關(guān)鍵字獲取免費(fèi)學(xué)習(xí)資料 showImg(https://segmentfault.com/img/remote/1460000016134163); Java?基礎(chǔ)斷更一周了...

    chinafgj 評(píng)論0 收藏0
  • Java零基礎(chǔ)入門筆記|原來(lái)學(xué)Java可以這么簡(jiǎn)單

    摘要:剛開始學(xué)習(xí)的時(shí)候,可能是一頭霧水,不知道從何學(xué)起。這個(gè)教程總體來(lái)說(shuō)就像列文虎克教學(xué),細(xì)到極致,妙到毫巔。適合絕對(duì)零基礎(chǔ)的,每個(gè)知識(shí)點(diǎn)掰開了揉碎了講解。 剛開始學(xué)習(xí)java的時(shí)候,可能是一頭霧水,不知道從何學(xué)起。還有很多Java小白,在剛自學(xué)Java的時(shí)候玩命的學(xué)習(xí),玩命的記住Java原理,天天早上五點(diǎn)起床背Java的一些英...

    2bdenny 評(píng)論0 收藏0
  • 基礎(chǔ)學(xué) Java】運(yùn)算符和數(shù)據(jù)類型

    摘要:是一種強(qiáng)類型語(yǔ)言,因此,定義了基本數(shù)據(jù)類型。運(yùn)算符先從運(yùn)算符談起。基本數(shù)據(jù)類的基本數(shù)據(jù)類型同其它高級(jí)程序語(yǔ)言比較類似。常用類類型除了一些基本數(shù)據(jù)類型,提供的一些類類型,使用頻率也很高。 Java 是一種強(qiáng)類型語(yǔ)言,因此,Java 定義了基本數(shù)據(jù)類型。同時(shí), Java 和其它高級(jí)計(jì)算機(jī)語(yǔ)言一樣,有多種運(yùn)算符,這在我們編程過(guò)程中極為有用。 運(yùn)算符 先從運(yùn)算符談起。 顧名思義,運(yùn)算符解決的是...

    izhuhaodev 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<