Java基本數(shù)據(jù)類型

目錄:

1.基本數(shù)據(jù)類型

2.引用數(shù)據(jù)類型

數(shù)據(jù)類型:

??????? Java語(yǔ)言是一個(gè)強(qiáng)類型語(yǔ)言

??????? 1.所有變量,必須先聲明類型,再使用症汹。

??????? 2.指定類型的變量,只能裝對(duì)應(yīng)類型的數(shù)據(jù)贷腕。通俗來(lái)講烈菌,什么樣的瓶子裝什么樣的酒。

Java數(shù)據(jù)類型可分為兩大類:

1.基本數(shù)據(jù)類型

共8個(gè)???

4個(gè)整型(不支持小數(shù)): ?????? byte??????? short??????? int??????? long

2個(gè)浮點(diǎn)型(支持小數(shù)):??????? float??????? double

1個(gè)字符型???????????????????? :?????? ? char

1個(gè) boolean 型???????????? :???????? boolean(只支持兩個(gè)值:true 或者 false)

四個(gè)整數(shù)(不支持小數(shù)):

byte:? 一個(gè)字節(jié)花履。??? 1 byte =8 bit (每個(gè) bit 相當(dāng)于一個(gè)硬幣芽世,有兩個(gè)狀態(tài))??? -128~127??? 256

short:兩個(gè)字節(jié)。? ? -32768~32767 ? ?? ? 65536

int:???? 四個(gè)字節(jié)诡壁。??? -2G~2G-1

long:? 八個(gè)字節(jié)济瓢。??? -2^63~2^63-1

整數(shù)Test程序 及 運(yùn)行結(jié)果:

public class 整數(shù)Test

{

??? public static void main(String[] args)

??? {

? ? ? ? int a;

?? ? ?? a = 456;

?? ? ?? int b;

??????? b = a;

??????? System.out.println("~~~~" + a);

??????? System.out.println("~~~~" + b);

??????? byte bb = (byte)345;

??????? System.out.println("~~~~" + bb);? //溢出

??????? byte b2 = (byte)385;

??????? System.out.println("~~~~" + b2);? //溢出? 補(bǔ)碼

??? }

}


整數(shù)Test



2個(gè)浮點(diǎn)數(shù)(支持小數(shù)):

??????? A.浮點(diǎn)數(shù)有兩種表現(xiàn)形式:

?????????????? 1.10進(jìn)制形式:??? 5.12??????? .512(沒(méi)有整數(shù)部分 0 可以省略)

?????????????? 2.科學(xué)記數(shù)法:??? .12e4

??????? B.浮點(diǎn)數(shù)默認(rèn)是 double 類型

?????????????? 如果想使用一個(gè) float 型的浮點(diǎn)數(shù),應(yīng)該在浮點(diǎn)數(shù)后添加 F 或 f妹卿。

?????????????? 推薦使用 double 型的浮點(diǎn)數(shù)旺矾。

?????? C.浮點(diǎn)數(shù)有三個(gè)特殊值:

??????????????? 正無(wú)窮大:用正浮點(diǎn)數(shù)除以 0 就是正無(wú)窮大。所有正無(wú)窮大都相等夺克。(Double.POSITIVE_INFINITY)

? ? ? ? ? ? ? ? 負(fù)無(wú)窮大:用負(fù)浮點(diǎn)數(shù)除以 0 就是負(fù)無(wú)窮大箕宙。所有負(fù)無(wú)窮大都相等。? ? (Double.NEGATIVE_INFINITY)

? ? ? ? ? ? ? ? 非數(shù):? ? ? 用 0.0 除以 0 就是非數(shù)铺纽。? ? ? ? ? ? ? 非數(shù)與自己不相等柬帕。? (Double.NaN)

浮點(diǎn)數(shù)Test程序 及 運(yùn)行結(jié)果:

public class 浮點(diǎn)數(shù)Test

{

??? public static void main(String[] args)

??? {

??????? double b = .512;

??????? System.out.println(b);

??????? double bb = .12e4;

??????? System.out.println(bb);

??????? float f = 1.12f;// 0.12 默認(rèn)是double 類型

??????? double max1 = 0.5/0.0;

??????? double max2 = 6666666/0.0;

?? ? ?? System.out.println(max1 == max2);

?? ? ?? double max3 = -0.5/0.0;

??????? double max4 = -666666/0.0;

??????? System.out.println(max3 == max4);

??????? double nan1 = 0.0/0.0;

??????? double nan2 = 0.0/0.0;

?? ? ?? System.out.println(nan1 == nan2);

}


浮點(diǎn)數(shù)Test


1個(gè)字符型:char

??????? A. 每個(gè)字符型的變量只能裝一個(gè)字符,既可是英文的狡门,也可是中文的陷寝。而且用單引號(hào)包起來(lái)。

??????? B.字符型的值有 3 種表示方式:

?????????????? 1.? ‘a(chǎn)’??? 其馏,?? ‘中’

? ? ? ?? ? ? ? 2. 轉(zhuǎn)義字符:? ‘\n’? 換行? 將當(dāng)前位置移到下一行開(kāi)頭

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \r? ? 回車? 將當(dāng)前位置移到本行開(kāi)頭

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \t? ? 橫向跳格? 水平制表(HT) (跳到下一個(gè)TAB位置)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \b? 退格? 將當(dāng)前位置移到前一列

??????????????????????????????????????? \f?? 換頁(yè)(FF)凤跑,將當(dāng)前位置移到下頁(yè)開(kāi)頭

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \"? 代表一個(gè)雙引號(hào)字符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \'?? 代表一個(gè)單引號(hào)(撇號(hào))字符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \\? 代表一個(gè)反斜線字符''\'

轉(zhuǎn)義字符

?????????????? 3. 直接用 Unicode 的形式來(lái)表示。

??????? C. 每個(gè)字符占 2 個(gè)字節(jié)(16位)叛复,一共有 65536 種狀態(tài)仔引,相當(dāng)于可表示 65536 個(gè)字符扔仓。

??????????????? 整個(gè) Java 一共也就是支持 65536 個(gè)字符。

??????????? 字符型的變量咖耘,直接可作為“正整數(shù)”使用翘簇,最高位依然是數(shù)值位。0~65535鲤看。

字符型Test程序 及 運(yùn)行結(jié)果:

public class 字符型Test

{

??? public static void main(String[] args)

??? {

??????? char c = 'a';

??????? char c2 = '國(guó)';

??????? char rr = '\r';? //相當(dāng)于13

??????? char nn = '\n';? //相當(dāng)于10

??????? System.out.println((int)rr);

??????? System.out.println((int)nn);

??????? System.out.println(rr + nn);

??????? System.out.println("------------");

??????? //System.out.println(rr + "" +nn);

??????? System.out.println(rr);

??????? System.out.println(nn);

??????? System.out.println("============");

??????? System.out.println("******");

??????? char bb = '\b';? //相當(dāng)于鍵盤上的 backspace

??????? System.out.println(bb);

??????? System.out.println(bb);

??????? System.out.println(bb);

??????? System.out.println(bb);

??????? System.out.println(bb);

??????? char achar = 'a';? //數(shù)值是97

??????? System.out.println((int)achar);

??????? char Achar = 'A';? //65

??????? System.out.println((int)Achar);

?? ? ?? char zerochar = '0';? //數(shù)值是48

?? ? ?? System.out.println((int)zerochar);

??????? //? 一個(gè)字符占 16 bit缘揪,因此可寫成 4 位的 16 進(jìn)制

?? ? ?? char ca = '\u0042';? // 66? 必須是 \u? (unicode形式)

??????? System.out.println(ca);

??? }

}


字符型Test

練習(xí):簡(jiǎn)單隨機(jī)“驗(yàn)證碼”? 程序 及 運(yùn)行結(jié)果:

//? 生成一個(gè)六位耍群、隨機(jī)大寫字母

import java.util.*;

public class RandomStr

{

??? public static void main(String[] args)

??? {

??? // 控制代碼循環(huán) 6 次

??????? for(int i = 0;i < 6;i++)

??????? {

??????????? Random rand = new Random();//? 創(chuàng)建一個(gè)隨即對(duì)象

??????????? int randNum = rand.nextInt(25);//? 生成一個(gè) 0~25 之間的隨機(jī)數(shù)

?????? ? ?? System.out.print((char)(randNum + 65));//? 得到 65~65+25 之間的數(shù)值

??????? }

??? }

}


RandomStr

/****************************************

補(bǔ)充1:TB? 之上? 接著就是拍字節(jié)(PB)义桂、艾字節(jié)(EB)、澤它字節(jié)(ZB蹈垢,又稱為皆字節(jié))慷吊、堯它字節(jié)(YB)、最大是千億億億字節(jié)(BB)曹抬、最小是比特(b溉瓶,又稱為位)。

補(bǔ)充2:整數(shù)有如下 4 種表示形式

?????????????????? 10 進(jìn)制整數(shù):????? 默認(rèn)就是

? ? ? ? ? ? ? ? ?? 16 進(jìn)制整數(shù):? ??? 0x 0開(kāi)頭谤民,0~9? abcdef

? ? ? ? ? ? ? ? ?? 8 ? 進(jìn)制整數(shù):? ? ? 以 0 開(kāi)頭堰酿,0~7

? ? ? ? ? ? ? ? ?? 2 ? 進(jìn)制整數(shù):? ? ? 以 0b 開(kāi)頭,0~1

當(dāng)我們直接使用一個(gè)整數(shù)時(shí)张足,整數(shù)默認(rèn)是 int 類型触创。

?????????? 如果想使用一個(gè) long 型的整數(shù),應(yīng)該在整數(shù)后添加 L 或 l为牍。

補(bǔ)充:3:關(guān)于整數(shù)的存儲(chǔ):

?????????? 1.? 最高位是符號(hào)位哼绑。

??????????????? 最高位是 0 代表正數(shù),最高位是 1 代表負(fù)數(shù)

?????????? 2.所有數(shù)值在計(jì)算里都以補(bǔ)碼形式保存的碉咆。

?????????? 原碼:??? 直接換算出的二進(jìn)制碼

?????????? 反碼:??? 除符號(hào)位不變之外抖韩,其他位都取反。

?????????? 補(bǔ)碼:??? 負(fù)數(shù)補(bǔ)碼 = 反碼 +1疫铜;正數(shù)補(bǔ)碼 = 原碼茂浮。

補(bǔ)碼的設(shè)計(jì)目的是:

⑴使符號(hào)位能與有效值部分一起參加運(yùn)算,從而簡(jiǎn)化運(yùn)算規(guī)則.

⑵使減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算,進(jìn)一步簡(jiǎn)化計(jì)算機(jī)中運(yùn)算器的線路設(shè)計(jì)


******************************/

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

??????? 1.Java 是強(qiáng)類型的語(yǔ)言。

?????????????????? A. 所有變量壳咕,必須先聲明励稳,后使用。

?????????????????? B. 指定類型的變量囱井,只能裝相應(yīng)類型的值

??????? 8 個(gè)基本類型驹尼,7個(gè)數(shù)值型 + 1個(gè)boolean型

??????? 7 個(gè)數(shù)值型??? (4 個(gè)整型、2 個(gè)浮點(diǎn)型庞呕、 char 可當(dāng)成正整數(shù)型)

Java 的類型轉(zhuǎn)換可分為兩種:

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

????? ? ? ? ? ? 表數(shù)范圍小的新翎,可以自動(dòng)轉(zhuǎn)換表數(shù)范圍大的程帕。

直接寫一個(gè)整數(shù),默認(rèn)是 int 型地啰,但如果它的范圍在 byte愁拭、short 表數(shù)范圍之內(nèi),而且程序直接將該值賦給 byte亏吝、short 類型的變量岭埠,系統(tǒng)會(huì)自動(dòng)把它當(dāng)成 byte、short 用

????????? 1.所有數(shù)值型蔚鸥,都可以自動(dòng)轉(zhuǎn)換為 double 類型惜论。

????????? 2.所有數(shù)值型,除了 double 之外止喷,都可以自動(dòng)轉(zhuǎn)換為 float 型

? ? ? ? ? 3.所有整型都可以自動(dòng)轉(zhuǎn)換為 long 型?


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

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

??? 當(dāng)我們要把表數(shù)范圍大的變量或值馆类,轉(zhuǎn)為表數(shù)范圍小的,就需要使用強(qiáng)制轉(zhuǎn)換弹谁。

??? 語(yǔ)法格式:??? (類型)

??? 強(qiáng)轉(zhuǎn)是可能丟失精度的乾巧。

強(qiáng)制類型轉(zhuǎn)換 (溢出的計(jì)算)程序 及 運(yùn)行結(jié)果:

public class 強(qiáng)制轉(zhuǎn)換

{

??? public static void main(String[] args)

??? {

? ? ? ? double d = 34;// 34默認(rèn)是 int 型,int 型可以自動(dòng)轉(zhuǎn)換 double 预愤,因此是對(duì)的

??????? float ff = 12;// 12默認(rèn)是 int 型沟于,int 型可以自動(dòng)轉(zhuǎn)換 float

??????? float fo = '\u0078';//? '\u0078'是 char 型,char 可以自動(dòng)轉(zhuǎn)換 float 型

??????? double dd = '\r';//? '\r'是 char 型植康,char 可以自動(dòng)轉(zhuǎn)換 double 型

??????? int iVal = 'A';//? 'A'是 char 型旷太,char 型可自動(dòng)轉(zhuǎn)換成 int 型

??????? float ft = (float)d;// 由于 d 是 double 型,double 不能自動(dòng)轉(zhuǎn)換為float

??????? // 因此需要進(jìn)行強(qiáng)轉(zhuǎn)

?? ? ?? double de = fo;//? 由于 fo 是 float 型向图,float 型可以自動(dòng)轉(zhuǎn)換為 double

?? ? ?? char cr = (char)dd;// 由于 dd 是 double 型泳秀,double 型不能自動(dòng)轉(zhuǎn)換為 char

??????? // 因此需要強(qiáng)轉(zhuǎn)

?? ? ?? //強(qiáng)轉(zhuǎn)是可能丟失精度的。

?? ? ?? short st = (short)33330;// 33330默認(rèn)是 int 型榄攀,int 不能自動(dòng)轉(zhuǎn)換為 short ( -32768~32767)嗜傅。因此強(qiáng)轉(zhuǎn)

??????? System.out.println(st);

??????? byte bb = 12;//? 12 默認(rèn) int,但由于 12 在byte內(nèi)檩赢,系統(tǒng)會(huì)自動(dòng)把它當(dāng)成byte

?? ? ?? int it = -3;

??????? byte bt = (byte)it;// it 是 int 型吕嘀,不能自動(dòng)轉(zhuǎn)換為byte,因此強(qiáng)轉(zhuǎn)

?? ? ?? System.out.println(bt);

??? }

}

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

3.表達(dá)式類型的自動(dòng)提升

規(guī)則:整個(gè)表達(dá)式的數(shù)據(jù)類型贞瞒,與表達(dá)式中最高等級(jí)的運(yùn)算數(shù)的類型相同偶房。

自動(dòng)提升程序 及 運(yùn)行結(jié)果:

public class 自動(dòng)提升

??? {

??????? public static void main(String[] args)

?? ? ?? {

?? ? ?? byte bt = 2; //? 2 是 int 型。

?????? ? ? ? ? ? ? ? ? ?? //? 由于2在 byte 范圍军浆,而是直接賦整數(shù)值

?? ? ??????????????????? //? 系統(tǒng)會(huì)自動(dòng)將它當(dāng)成 byte 處理棕洋。

? ? ? ? bt = bt + 1;????? //? 錯(cuò)誤的? ? ? ? ? ? 正確應(yīng)該為:bt = (byte)(bt + 1)

?? ? ???????????????????????????????? //? 1 默認(rèn)是 int 型

?? ? ??????????????????????????????? //? 整個(gè)表達(dá)式的類型與 1 的類型相同,因此表達(dá)式的類型就提升成了 int 型

? ? ? ? int a = 5;

? ? ? ? a = (int)((a + 20) / 2.5); // 2.5 是 double 型

? ? ? ? System.out.println(a);

??????? int it = 10;

??????? it = it / 4; // it 是 int乒融,4也是int掰盘,整個(gè)表達(dá)式依然是 int 型摄悯。

??????? System.out.println(it);

??????? it = 10;

?? ? ?? double du = it / 4; // it是int,4也是int愧捕,整個(gè)表達(dá)式依然是 int 型奢驯。

?? ? ?? System.out.println(du);

??? }

}


自動(dòng)提升


直接量:

??? 直接在源代碼中指定的值,就是直接量次绘。

??? 8 個(gè)基本數(shù)據(jù)類型瘪阁,都可以指定直接量。

??? boolean 類型邮偎,只有兩個(gè)直接變量:true管跺,false

? ? null 直接量,只能賦值給引用變量钢猛。null 直接量不能賦值給基本類型的變量伙菜。



2.引用數(shù)據(jù)類型

類轩缤,接口命迈,數(shù)組


以上,未完


寫在最后:

今早終于把東西搬過(guò)來(lái)了火的,總算是為自己可能三個(gè)月的實(shí)習(xí)找到了一個(gè)窩:摺!馏鹤!昨天坐一號(hào)線地鐵去大望路找女票征椒,地鐵的一幕引發(fā)了我的思考,一對(duì)小夫妻帶著大概幾個(gè)月的娃湃累,孩子哭哭啼啼勃救,孩子的父親并沒(méi)有多大耐心,只有母親去安慰孩子……或許再過(guò)幾年治力,我也要為人父蒙秒,本來(lái)是覺(jué)得這件事距離我很遠(yuǎn)的啊,再看看公司的前輩宵统,也有很多已經(jīng)結(jié)婚了晕讲。北京這個(gè)地方,確實(shí)很迷人马澈,扎根北京的想法我也不知道想過(guò)沒(méi)瓢省,總之作為女票口中第一代進(jìn)京的我們來(lái)說(shuō),是有些難吧痊班,可能終將有一天勤婚,我也會(huì)變成房奴吧,哈哈涤伐。但是不管怎么說(shuō)馒胆,還是要抓住眼下荆永,世界會(huì)殘酷的淘汰掉不會(huì)改變的人(昨地鐵上看到的一句話),來(lái)国章,干了這碗驢雜湯具钥!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市液兽,隨后出現(xiàn)的幾起案子骂删,更是在濱河造成了極大的恐慌,老刑警劉巖四啰,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宁玫,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡柑晒,警方通過(guò)查閱死者的電腦和手機(jī)欧瘪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)匙赞,“玉大人佛掖,你說(shuō)我怎么就攤上這事∮客ィ” “怎么了芥被?”我有些...
    開(kāi)封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)坐榆。 經(jīng)常有香客問(wèn)我拴魄,道長(zhǎng),這世上最難降的妖魔是什么席镀? 我笑而不...
    開(kāi)封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任匹中,我火速辦了婚禮,結(jié)果婚禮上豪诲,老公的妹妹穿的比我還像新娘顶捷。我一直安慰自己,他們只是感情好跛溉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布焊切。 她就那樣靜靜地躺著,像睡著了一般芳室。 火紅的嫁衣襯著肌膚如雪专肪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天堪侯,我揣著相機(jī)與錄音嚎尤,去河邊找鬼。 笑死伍宦,一個(gè)胖子當(dāng)著我的面吹牛芽死,可吹牛的內(nèi)容都是我干的乏梁。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼关贵,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼遇骑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起揖曾,我...
    開(kāi)封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤落萎,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后炭剪,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體练链,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年奴拦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了媒鼓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡错妖,死狀恐怖绿鸣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情站玄,我是刑警寧澤枚驻,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布濒旦,位于F島的核電站株旷,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏尔邓。R本人自食惡果不足惜晾剖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梯嗽。 院中可真熱鬧齿尽,春花似錦、人聲如沸灯节。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)炎疆。三九已至卡骂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間形入,已是汗流浹背全跨。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亿遂,地道東北人浓若。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓渺杉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親挪钓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子是越,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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