欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基礎(chǔ)-Java基本數(shù)據(jù)類型

 更新時(shí)間:2022年01月26日 16:07:31   作者:碼農(nóng)洞見(jiàn)  
這篇文章主要介紹了Java基礎(chǔ)-Java基本數(shù)據(jù)類型,變量就是申請(qǐng)內(nèi)存來(lái)存儲(chǔ)值。也就是說(shuō),當(dāng)創(chuàng)建變量的時(shí)候,需要在內(nèi)存中申請(qǐng)空間,下面我們就來(lái)對(duì)Java基本數(shù)據(jù)類型作簡(jiǎn)單的介紹,需要的朋友可以參考一下

1 前言

變量就是申請(qǐng)內(nèi)存來(lái)存儲(chǔ)值。也就是說(shuō),當(dāng)創(chuàng)建變量的時(shí)候,需要在內(nèi)存中申請(qǐng)空間。

內(nèi)存管理系統(tǒng)根據(jù)變量的類型為變量分配存儲(chǔ)空間,分配的空間只能用來(lái)儲(chǔ)存該類型數(shù)據(jù)。

因此,通過(guò)定義不同類型的變量,可以在內(nèi)存中儲(chǔ)存整數(shù)、小數(shù)或者字符。
 
Java支持八種基本數(shù)據(jù)類型,包括一種布爾類型、一種字符類型、一種數(shù)值型,包括四種整數(shù)類型和兩種浮點(diǎn)數(shù)類型。

2 布爾類型

  • boolean數(shù)據(jù)類型表示一位的信息;
  • 只有兩個(gè)取值:true false;
  • 這種類型只作為一種標(biāo)志來(lái)記錄true/false 情況;
  • 默認(rèn)值是 false;
  • 例子:
boolean b = true2

3 字符類型

  • char 類型是一個(gè)單一的 16 位 Unicode 字符;
  • 最小值是 \u0000(十進(jìn)制等效值為 0);
  • 最大值是 \uffff(即為 65535);
  • char 數(shù)據(jù)類型可以儲(chǔ)存任何字符;
  • 例子:
? char c = 'A';

4 值類型

4.1 byte

  • byte 數(shù)據(jù)類型是8位、有符號(hào)的,以二進(jìn)制補(bǔ)碼表示的整數(shù);
  • 最小值是 -128(-2^7);
  • 最大值是 127(2^7-1);
  • 默認(rèn)值是 0;
  • byte 類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù),因?yàn)?byte 變量占用的空間只有 int 類型的四分之一;
  • 例子:
? byte b = 100;

4.2 short

  • short 數(shù)據(jù)類型是 16 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)
  • 最小值是 -32768(-2^15);
  • 最大值是 32767(2^15 - 1);
  • Short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間。一個(gè)short變量是int型變量所占空間的二分之一;
  • 默認(rèn)值是 0;
  • 例子:
? short short s = -10000;

4.3 int

  • int 數(shù)據(jù)類型是32位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù);
  • 最小值是 -2,147,483,648(-2^31);
  • 最大值是 2,147,483,647(2^31 - 1);
  • 一般地整型變量默認(rèn)為 int 類型;
  • 默認(rèn)值是 0 ;
  • 例子:
? int a = 100000;

4.4 long

  • long 數(shù)據(jù)類型是 64 位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù);
  • 最小值是 -9,223,372,036,854,775,808(-2^63);
  • 最大值是 9,223,372,036,854,775,807(2^63 -1);
  • 這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上;
  • 默認(rèn)值是 0L;
  • 例子:
?long l = 100000L;

"L"理論上不分大小寫,但是若寫成"l"容易與數(shù)字"1"混淆,不容易分辯。所以最好大寫。

4.5 float

  • float 數(shù)據(jù)類型是單精度、32位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù);
  • float 在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間;
  • 默認(rèn)值是 0.0f;
  • 浮點(diǎn)數(shù)不能用來(lái)表示精確的值,如貨幣;
  • 例子:
? float f1 = 234.5f;

4.6 double

  • double 數(shù)據(jù)類型是雙精度、64 位、符合 IEEE 754 標(biāo)準(zhǔn)的浮點(diǎn)數(shù);
  • 浮點(diǎn)數(shù)的默認(rèn)類型為 double 類型;
  • double類型同樣不能表示精確的值,如貨幣;
  • 默認(rèn)值是 0.0d;
  • 例子:
? double d5 = 12.9867;?

5 碼農(nóng)來(lái)洞見(jiàn)

5.1 類型轉(zhuǎn)換

Java允許整數(shù)和浮點(diǎn)數(shù)之間互相轉(zhuǎn)換。并且,由于每個(gè)字符都對(duì)應(yīng)Unicode編碼中的一個(gè)數(shù)字,所以char與整數(shù)和浮點(diǎn)數(shù)之間也可以相互轉(zhuǎn)換。事實(shí)上,在Java中,boolean類型是唯一一種不能跟其他基本類型相互轉(zhuǎn)換的基本類型。

自動(dòng)類型轉(zhuǎn)換:

也叫隱式類型轉(zhuǎn)換,其實(shí)就是小范圍的數(shù)據(jù)類型向大范圍的數(shù)據(jù)類型轉(zhuǎn)換(byte ->short(char)->int->long->float->double)。

強(qiáng)制類型轉(zhuǎn)換:

也叫顯式類型轉(zhuǎn)換,是從存儲(chǔ)范圍大的類型到存儲(chǔ)范圍小的類型(double→float→long→int→short(char)→byte)。強(qiáng)制類型轉(zhuǎn)換所帶來(lái)的結(jié)果是可能會(huì)丟失精度,如果此數(shù)值尚在范圍較小的類型數(shù)值范圍內(nèi),對(duì)于整型變量精度不變,但如果超出范圍較小的類型數(shù)值范圍內(nèi),很可能出現(xiàn)一些意外情況。

int i = 223;
byte b = (byte) i;

上面的例子中輸出值是-23.

為什么結(jié)果是-23?需要從最根本的二進(jìn)制存儲(chǔ)考慮。

233的二進(jìn)制表示為:24位0 + 11101001,byte型只有8位,于是從高位開(kāi)始舍棄,截?cái)嗪笫O拢?1101001,由于二進(jìn)制最高位1表示負(fù)數(shù),0表示正數(shù),其相應(yīng)的負(fù)數(shù)為-23。

數(shù)據(jù)類型自動(dòng)提升:

數(shù)值類型在內(nèi)存中直接存儲(chǔ)其本身的值,對(duì)于不同的數(shù)值類型,內(nèi)存中會(huì)分配相應(yīng)的大小去存儲(chǔ)。如:byte類型的變量占用8位,int類型變量占用32位等。相應(yīng)的,不同的數(shù)值類型會(huì)有與其存儲(chǔ)空間相匹配的取值范圍。

在Java中,整數(shù)類型(byte/short/int/long)中,對(duì)于未聲明數(shù)據(jù)類型的整型,其默認(rèn)類型為int型。在浮點(diǎn)類型(float/double)中,對(duì)于未聲明數(shù)據(jù)類型的浮點(diǎn)型,默認(rèn)為double型。

5.2 存儲(chǔ)空間

注意事項(xiàng)1:

如果需要一個(gè)占位符來(lái)存儲(chǔ)數(shù)字1000000,那么需要一個(gè)int型數(shù),long可以用于存儲(chǔ)更大的數(shù)字,讀者可能問(wèn),既然long可以包含比byte和int型數(shù)更大的數(shù)字,為什么不總是使用long呢?這是因?yàn)閘ong需要64位,相比byte
或int,這會(huì)占用更多的內(nèi)存空間。因此,為了節(jié)省空間,需要選擇合適的基本類型。

注意事項(xiàng)2:

將一個(gè)int型的1000賦給一個(gè)byte型的變量a,提示出錯(cuò),但是最后一句:將一個(gè)int型的3賦給一個(gè)byte型的變量c,居然編譯正確,這是為什么呢?

byte b1 = 1000;
byte b2 = 3;

原因在于:jvm在編譯過(guò)程中,對(duì)于默認(rèn)為int類型的數(shù)值時(shí),當(dāng)賦給一個(gè)比int型數(shù)值范圍小的數(shù)值類型變量,會(huì)進(jìn)行判斷,如果此int型數(shù)值超過(guò)數(shù)值類型,那么會(huì)直接編譯出錯(cuò)。但是如果此int型數(shù)值尚在數(shù)值類型范圍內(nèi),jvm會(huì)自動(dòng)進(jìn)行一次隱式類型轉(zhuǎn)換。

到此這篇關(guān)于Java基礎(chǔ)-Java基本數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)Java基本數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring 應(yīng)用中集成 Apache Shiro的方法

    Spring 應(yīng)用中集成 Apache Shiro的方法

    這篇文章主要介紹了Spring 應(yīng)用中集成 Apache Shiro的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • SpringMVC上傳和解析Excel方法

    SpringMVC上傳和解析Excel方法

    這篇文章主要介紹了SpringMVC上傳和解析Excel方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • java計(jì)算兩個(gè)時(shí)間相差天數(shù)的方法匯總

    java計(jì)算兩個(gè)時(shí)間相差天數(shù)的方法匯總

    這篇文章主要介紹了java計(jì)算兩個(gè)時(shí)間相差天數(shù)的方法,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 堆排序?qū)嵗?Java數(shù)組實(shí)現(xiàn))

    堆排序?qū)嵗?Java數(shù)組實(shí)現(xiàn))

    下面小編就為大家分享一篇使用Java數(shù)組實(shí)現(xiàn)堆排序的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Java?數(shù)據(jù)結(jié)構(gòu)深入理解ArrayList與順序表

    Java?數(shù)據(jù)結(jié)構(gòu)深入理解ArrayList與順序表

    ArrayList?類是一個(gè)可以動(dòng)態(tài)修改的數(shù)組,與普通數(shù)組的區(qū)別就是它是沒(méi)有固定大小的限制,我們可以添加或刪除元素。ArrayList?繼承了?AbstractList?,并實(shí)現(xiàn)了?List?接口,順序表是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-04-04
  • SpringBoot配置log4j輸出日志的案例講解

    SpringBoot配置log4j輸出日志的案例講解

    這篇文章主要介紹了SpringBoot配置log4j輸出日志的案例講解,springboot框架中默認(rèn)使用logback進(jìn)行日志輸出,當(dāng)然它也可以配置其它的日志框架,需要的朋友可以參考下
    2022-11-11
  • Spring Boot ActiveMQ如何設(shè)置訪問(wèn)密碼

    Spring Boot ActiveMQ如何設(shè)置訪問(wèn)密碼

    這篇文章主要介紹了Spring Boot ActiveMQ如何設(shè)置訪問(wèn)密碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    SpringBoot與Spring中數(shù)據(jù)緩存Cache超詳細(xì)講解

    我們知道內(nèi)存讀取速度遠(yuǎn)大于硬盤讀取速度,當(dāng)需要重復(fù)獲取相同數(shù)據(jù)時(shí),一次一次的請(qǐng)求數(shù)據(jù)庫(kù)或者遠(yuǎn)程服務(wù),導(dǎo)致在數(shù)據(jù)庫(kù)查詢或者遠(yuǎn)程方法調(diào)用上小號(hào)大量的時(shí)間,最終導(dǎo)致程序性能降低,這就是數(shù)據(jù)緩存要解決的問(wèn)題,學(xué)過(guò)計(jì)算機(jī)組成原理或者操作系統(tǒng)的同學(xué)們應(yīng)該比較熟悉
    2022-10-10
  • 什么是Java自旋鎖

    什么是Java自旋鎖

    這篇文章主要介紹了什么是Java自旋鎖,在有些場(chǎng)景中,同步資源的鎖定時(shí)間很短,為了這一小段時(shí)間去切換線程,線程掛起和恢復(fù)現(xiàn)場(chǎng)的花費(fèi)可能會(huì)讓系統(tǒng)得不償失,下面來(lái)了解具體內(nèi)容介紹吧
    2022-01-01
  • java實(shí)現(xiàn)簡(jiǎn)易連連看小游戲

    java實(shí)現(xiàn)簡(jiǎn)易連連看小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易連連看小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評(píng)論