Java的數(shù)據(jù)類型

Java的數(shù)據(jù)類型包含基礎(chǔ)數(shù)據(jù)類型惊楼、引用數(shù)據(jù)類型兩大類。</br>


一秸讹、四大類八個(gè)基礎(chǔ)數(shù)據(jù)類型

Java語言提供了八種基本類型檀咙。四種數(shù)字類型(四個(gè)整數(shù)型(默認(rèn)是int 型),兩個(gè)浮點(diǎn)型(默認(rèn)是double 型))璃诀,一種字符類型弧可,還有一種布爾型。

1劣欢、byte:

byte數(shù)據(jù)類型是8位棕诵、有符號(hào)的,以二進(jìn)制補(bǔ)碼表示的整數(shù)凿将,占1字節(jié)校套。取值區(qū)間-128(-27)~127(27-1)),默認(rèn)值是0牧抵,對(duì)應(yīng)的Java引用類型是java.lang.Byte笛匙。

byte類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù)犀变,因?yàn)閎yte變量占用的空間只有int類型的四分之一妹孙。

例子:byte a = 100,byte b = -50获枝。

2蠢正、short:

short數(shù)據(jù)類型是16位、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù)省店,占2字節(jié)嚣崭。取值范圍-32768(-215)~32767(215 - 1),默認(rèn)值是0萨西,對(duì)應(yīng)的Java引用數(shù)據(jù)類型java.lang.Short有鹿。

short數(shù)據(jù)類型也可以像byte那樣節(jié)省空間。一個(gè)short變量是int型變量所占空間的二分之一谎脯。

例子:
short s = 1000葱跋,short r = -20000。
short s = 1;s+=1;(正確,s+=1 ==> s=(short)(s+1))
short s = 1;s =s+1;(錯(cuò)誤娱俺,s+1會(huì)被強(qiáng)制轉(zhuǎn)換為int類型稍味,而s是一個(gè)short類型,故錯(cuò)誤)

3荠卷、int:

int數(shù)據(jù)類型是32位模庐、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù),占4字節(jié)油宜,取值范圍-2,147,483,648(-231)~2,147,485,647(231 - 1)掂碱,整型變量默認(rèn)為int類型,默認(rèn)值是0慎冤,對(duì)應(yīng)的Java引用數(shù)據(jù)類型java.lang.Integer疼燥。

例子:int a = 100000, int b = -200000。

4蚁堤、long:

long數(shù)據(jù)類型是64位醉者、有符號(hào)的以二進(jìn)制補(bǔ)碼表示的整數(shù),占8字節(jié)披诗,取值范圍-9,223,372,036,854,775,808(-263)~9,223,372,036,854,775,807(263 -1)撬即,這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上,默認(rèn)值是0L呈队,對(duì)應(yīng)的Java引用類型java.lang.Long剥槐。

例子:
long a = 100000L,int b = -200000L掂咒。
long a=111111111111111111111111(錯(cuò)誤椿胯,整數(shù)型變量默認(rèn)是int型)
long a=111111111111111111111111L(正確民珍,強(qiáng)制轉(zhuǎn)換)

5叮雳、float:

float數(shù)據(jù)類型是單精度语淘、32位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù)孩革,占4字節(jié)岁歉,取值范圍1.40129846432481707E-45f ~ 3.40282346638528860E38f,浮點(diǎn)數(shù)是有舍入誤差的膝蜈,float在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間锅移,默認(rèn)值是0.0f,對(duì)應(yīng)的Java引用類型java.lang.Float饱搏。

例子:
float f1 = 234.5f非剃。
float f=6.26(錯(cuò)誤 浮點(diǎn)數(shù)默認(rèn)類型是double類型)
float f=6.26F(轉(zhuǎn)換正確,強(qiáng)制)

6推沸、double

double數(shù)據(jù)類型是雙精度备绽、64位券坞、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù),占8字節(jié)肺素,
浮點(diǎn)數(shù)的默認(rèn)類型為double類型恨锚,取值范圍 4.9E-324 ~ 1.7976931348623157E+308 ,默認(rèn)值是0.0倍靡,對(duì)應(yīng)的Java引用類型java.lang.Double</br>
例子:
double d1 = 123.4猴伶。
float f=6.26(錯(cuò)誤 浮點(diǎn)數(shù)默認(rèn)類型是double類型)

7、boolean:

boolean數(shù)據(jù)類型表示一位的信息塌西,只有兩個(gè)取值:true和false他挎,這種類型只作為一種標(biāo)志來記錄true/false情況,默認(rèn)值是false雨让,對(duì)應(yīng)的Java引用類型java.lang.Boolean

例子:boolean one = true雇盖。

8忿等、char:

char類型是一個(gè)單一的16位Unicode字符栖忠,用 ‘ ’表示一個(gè)字符。java 內(nèi)部使用Unicode字符集贸街。他有一些轉(zhuǎn)義字符 庵寞,占2字節(jié),取值范‘\u0000’~’\uffff’薛匪,默認(rèn)值’/u0000‘捐川,對(duì)應(yīng)的Java引用類型java.lang.Character

例子:
char a = 'a';</br>

二逸尖、引用數(shù)據(jù)類型

引用數(shù)據(jù)類型主要包含class古沥、interface、數(shù)組等等娇跟。

引用數(shù)據(jù)類型和基礎(chǔ)數(shù)據(jù)類型的區(qū)別:

基礎(chǔ)數(shù)據(jù)類型保存在棧中岩齿,保存的是實(shí)際值,引用數(shù)據(jù)類型也保存在棧中苞俘,保存的是一個(gè)實(shí)際對(duì)象地址盹沈,將具體的內(nèi)容保存在堆中;它們占用空間大小和存取速度不同吃谣;當(dāng)引用類型和原始類型用作某個(gè)類的實(shí)例數(shù)據(jù)時(shí)所指定的缺省值乞封,對(duì)象引用實(shí)例變量的缺省值為 null,而原始類型實(shí)例變量的缺省值與它們的類型有關(guān)岗憋;當(dāng)傳遞方法參數(shù)類型為引用數(shù)據(jù)類型時(shí)肃晚,一個(gè)方法將修改一個(gè)引用數(shù)據(jù)類型的參數(shù)所指向?qū)ο蟮闹担?dāng)傳遞方法參數(shù)類型為基本數(shù)據(jù)類型(數(shù)字以及布爾值)時(shí)仔戈,一個(gè)方法是不可能修改一個(gè)基本數(shù)據(jù)類型的參數(shù)关串。</br>

三惋鸥、案例

public class JavaLearnOne {
    public static void main(String args[]) {
        int a = 1;
        JavaLearnOne one = new JavaLearnOne();
        one.changeParamsA(a);
        System.out.println("main:" + a);
        CallValue callValue = new CallValue();
        callValue.setA(10);
        System.out.println("callValue:" + callValue.getA());
        one.updateCallValue(callValue);
        System.out.println("callValue update:" + callValue.getA());
    }

    public void updateCallValue(CallValue value) {
        value.setA(1000);
    }

    public void changeParamsA(int a) {
        a = 1000;
    }
}

class CallValue {
    private int a;

    public void setA(int a) {
        this.a = a;
    }

    public int getA() {
        return this.a;
    }
}

以上輸出結(jié)果:
main:1
callValue:10
callValue update:1000

說明:
當(dāng)傳遞方法參數(shù)類型為基本數(shù)據(jù)類型(數(shù)字以及布爾值)時(shí),一個(gè)方法是不可能修改一個(gè)基本數(shù)據(jù)類型的參數(shù)(傳遞的是值副本)悍缠,因此在changeParamsA中修改的只是參數(shù)值的副本卦绣,java程序設(shè)計(jì)語言是采用了按值調(diào)用,即call by value飞蚓。也就是說方法得到的是所有參數(shù)值的一個(gè)拷貝滤港,方法并不能修改傳遞給它的任何參數(shù)變量的內(nèi)容。

當(dāng)傳遞方法參數(shù)類型為引用數(shù)據(jù)類型時(shí)趴拧,一個(gè)方法將修改一個(gè)引用數(shù)據(jù)類型的參數(shù)所指向?qū)ο蟮闹到ρ0咐械膱?zhí)行過程:
1、對(duì)象執(zhí)行updateCallValue方法時(shí)著榴,value被初始化為callValue的拷貝
2添履、調(diào)用value的setA方法是,value和callValue的CallValue對(duì)象同時(shí)被修改脑又。
3暮胧、方法結(jié)束后,value將不會(huì)再使用问麸,被釋放往衷,而callValue繼續(xù)使用,沒有變化严卖,依然指向CallValue對(duì)象席舍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市哮笆,隨后出現(xiàn)的幾起案子来颤,更是在濱河造成了極大的恐慌,老刑警劉巖稠肘,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件福铅,死亡現(xiàn)場離奇詭異,居然都是意外死亡启具,警方通過查閱死者的電腦和手機(jī)本讥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲁冯,“玉大人拷沸,你說我怎么就攤上這事∈硌荩” “怎么了撞芍?”我有些...
    開封第一講書人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長跨扮。 經(jīng)常有香客問我序无,道長验毡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任帝嗡,我火速辦了婚禮晶通,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哟玷。我一直安慰自己狮辽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開白布巢寡。 她就那樣靜靜地躺著喉脖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抑月。 梳的紋絲不亂的頭發(fā)上树叽,一...
    開封第一講書人閱讀 49,729評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音谦絮,去河邊找鬼题诵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛挨稿,可吹牛的內(nèi)容都是我干的仇轻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼奶甘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了祭椰?” 一聲冷哼從身側(cè)響起臭家,我...
    開封第一講書人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎方淤,沒想到半個(gè)月后钉赁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡携茂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年你踩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讳苦。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡带膜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸳谜,到底是詐尸還是另有隱情膝藕,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布咐扭,位于F島的核電站芭挽,受9級(jí)特大地震影響滑废,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜袜爪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一蠕趁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辛馆,春花似錦妻导、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瓢对,卻和暖如春寿酌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硕蛹。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來泰國打工醇疼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人法焰。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓秧荆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親埃仪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乙濒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 第一類:邏輯型boolean 第二類:文本型char 第三類:整數(shù)型(byte、short卵蛉、int颁股、long) c...
    Jasonme閱讀 1,066評(píng)論 0 4
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法傻丝,內(nèi)部類的語法甘有,繼承相關(guān)的語法,異常的語法葡缰,線程的語...
    子非魚_t_閱讀 31,596評(píng)論 18 399
  • Java的簡單數(shù)據(jù)類型分為三大類:布爾型亏掀、字符型、數(shù)值型(整型泛释、浮點(diǎn)型) 布爾型:boolean--------1...
    CharmingWong閱讀 591評(píng)論 0 0
  • 1數(shù)據(jù)類型: 在Java中數(shù)據(jù)類型有 基本類型(8種)滤愕,引用類型(3種)⌒舶模基本數(shù)據(jù)類型①數(shù)值類型 整數(shù)型(byte...
    我的女人我來慣閱讀 257評(píng)論 0 0
  • 今天该互,我要回姥姥家了,我很開心因?yàn)榛氐郊揖涂梢砸姷较嗨嫉呐笥蚜恕? 一回到家睡了覺我就開始打電話...
    謝卓卿閱讀 232評(píng)論 0 0