java基礎(chǔ)數(shù)據(jù)類型入門_第1頁
java基礎(chǔ)數(shù)據(jù)類型入門_第2頁
java基礎(chǔ)數(shù)據(jù)類型入門_第3頁
java基礎(chǔ)數(shù)據(jù)類型入門_第4頁
java基礎(chǔ)數(shù)據(jù)類型入門_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1 關(guān)鍵字l 關(guān)鍵字概述 被Java語言賦予特定含義的單詞 l 關(guān)鍵字特點(diǎn) 組成關(guān)鍵字的字母全部小寫 l 關(guān)鍵字注意事項(xiàng) goto和const作為保留字存在,目前并不使用 類似Notepad+這樣的高級(jí)記事本,針對(duì)關(guān)鍵字有特殊的顏色標(biāo)記,非常直觀 l 1:保留字:在JDK的新版本中可能提升為關(guān)鍵字 l 2:通過一個(gè)案例演示Notepad對(duì)關(guān)鍵字有顏色標(biāo)記 l 3:判斷下列哪些是關(guān)鍵字l class,HelloWorld,public,static,void,main,String,System 2 標(biāo)識(shí)符l 標(biāo)識(shí)符概述 就是給類,接口,方法,變量等起名字時(shí)使用的字符序列 l 組成規(guī)則 英文大小

2、寫字母 數(shù)字字符 $和_l 注意事項(xiàng) 不能以數(shù)字開頭 不能是Java中的關(guān)鍵字 區(qū)分大小寫 l 1:起名字,不能太隨便,無規(guī)矩,不成方圓。 l 2:針對(duì)注意事項(xiàng),舉例演示 l 3:下面那些合法,那些不合法: l HelloWorld,DataClass,_983,$bS5_c7,class,DataClass#,98.3,Hell World 標(biāo)識(shí)符(常見命名規(guī)則)l 包(其實(shí)就是文件夾,用于解決相同類名問題) 單級(jí)和多級(jí)分別舉例 l 類或者接口 一個(gè)單詞和和多個(gè)單詞分別舉例 l 方法和變量 一個(gè)單詞和和多個(gè)單詞分別舉例 l 常量 一個(gè)單詞和和多個(gè)單詞分別舉例 l 包(其實(shí)就是文件夾,用于解決

3、相同類名問題) 單級(jí)和多級(jí)分別舉例 l 類或者接口 一個(gè)單詞和和多個(gè)單詞分別舉例 l 方法和變量 一個(gè)單詞和和多個(gè)單詞分別舉例 l 常量 一個(gè)單詞和和多個(gè)單詞分別舉例 注釋l 注釋概述 用于解釋說明程序的文字 l Java中注釋分類格式 單行注釋 格式: /注釋文字 多行注釋 格式: /* 注釋文字 */ 文檔注釋格式:/* 注釋文字 */1:對(duì)于單行和多行注釋,被注釋的文字,不會(huì)被JVM(java虛擬機(jī))解釋執(zhí)行。2:對(duì)于文檔注釋,是java特有的注釋,其中注釋內(nèi)容可以被JDK提供的工具 javadoc 所解析, 生成一套以網(wǎng)頁文件形式體現(xiàn)的該程序的說明文檔。后面講解 l 注釋是一個(gè)程序員必

4、須要具有的良好編程習(xí)慣。l 初學(xué)者編寫程序可以養(yǎng)成習(xí)慣:先寫注釋再寫代碼。l 將自己的思想通過注釋先整理出來,在用代碼去體現(xiàn)。l 因?yàn)榇a僅僅是思想的一種體現(xiàn)形式而已。l 把HelloWorld案例加入注釋寫出來 l 需求:寫一個(gè)程序,在控制臺(tái)輸出HelloWorld l 分析: l 寫一個(gè)java程序,首先定義類。 l 程序要想能夠被jvm調(diào)用,必須定義main方法。 l 程序要想有輸出結(jié)果,必須用輸出語句。 l 實(shí)現(xiàn): l 定義類用的是class關(guān)鍵字,后面跟的是類名 l main方法基本格式 l 輸出語句基本格式l /這是我的HelloWorld案例l /用class定義類,HelloW

5、orld是類名l class HelloWorld l /*l 這是main方法l 是程序的入口l 被jvm自動(dòng)調(diào)用l */l public static void main(String args) l /*l 這是輸出語句l ""里面放的是在控制臺(tái)上輸出的內(nèi)容l */l System.out.println("HelloWorld");l l l 解釋說明程序,提高程序的閱讀性 l 可以幫助我們排錯(cuò) 后面我們會(huì)講解更高級(jí)的排錯(cuò)方式1:通過案例演示注釋如何幫助我們排錯(cuò) 通過注釋部分程序看效果4 常量l 常量概述 在程序執(zhí)行的過程中其值不可以發(fā)生改變 l

6、 Java中常量分類 字面值常量 自定義常量(面向?qū)ο蟛糠种v)l 字符串常量用雙引號(hào)括起來的內(nèi)容 l 整數(shù)常量所有整數(shù) 12,23l 小數(shù)常量所有小數(shù) 12.34,56.78l 字符常量用單引號(hào)括起來的內(nèi)容 a,A,0l 布爾常量較為特有,只有true和falsel 空常量null(數(shù)組部分講解) l 1:字符串是一個(gè)常量都可以輸出,所以,我們也可以把其他的常量進(jìn)行輸出。 l Java針對(duì)整數(shù)常量提供了4種表現(xiàn)形式 二進(jìn)制 八進(jìn)制 十進(jìn)制 十六進(jìn)制 l 進(jìn)制概述 進(jìn)制:就是進(jìn)位制,是人們規(guī)定的一種進(jìn)位方法。 對(duì)于任何一種進(jìn)制-X進(jìn)制,就表示某一位置上的數(shù)運(yùn)算時(shí)是逢X進(jìn)一位。二進(jìn)制就是逢二進(jìn)一,

7、八進(jìn)制是逢八進(jìn)一,十進(jìn)制是逢十進(jìn)一,十六進(jìn)制是逢十六進(jìn)一。 二進(jìn)制的由來:任何數(shù)據(jù)在計(jì)算機(jī)中都是以二進(jìn)制的形式存在的。二進(jìn)制早期由電信號(hào)開關(guān)演變而來。一個(gè)整數(shù)在內(nèi)存中一樣也是二進(jìn)制的,但是使用一大串的1或者0組成的數(shù)值進(jìn)行使用很麻煩。 所以就想把一大串縮短點(diǎn),將二進(jìn)制中的三位用一位表示。這三位可以取到的最大值就是7.超過7就進(jìn)位了,這就是八進(jìn)制。但是對(duì)于過長的二進(jìn)制變成八進(jìn)制還是較長,所以出現(xiàn)的用4個(gè)二進(jìn)制位表示一位的情況,四個(gè)二進(jìn)制位最大是15,這就是十六進(jìn)制。規(guī)律,進(jìn)制越大,表現(xiàn)形式越短。l 同進(jìn)制的數(shù)據(jù)組成 二進(jìn)制 由0,1組成。以0b開頭 八進(jìn)制 由0,1,7組成。以0開頭 十進(jìn)制 由

8、0,1,9組成。整數(shù)默認(rèn)是十進(jìn)制的 十六進(jìn)制 由0,1,9,a,b,c,d,e,f(大小寫均可)。以0x開頭 l 進(jìn)制轉(zhuǎn)換 其他進(jìn)制到十進(jìn)制 通過十進(jìn)制推出結(jié)論 把0b100,0100,0x100轉(zhuǎn)換成十進(jìn)制 十進(jìn)制到其他進(jìn)制 通過十進(jìn)制推出結(jié)論 把52分別表示成二進(jìn)制,八進(jìn)制,十六進(jìn)制 l 1:其他進(jìn)制到十進(jìn)制l 系數(shù):就是每一位上的數(shù)據(jù)。l 基數(shù):X進(jìn)制,基數(shù)就是X。l 權(quán):在右邊,從0開始編號(hào),對(duì)應(yīng)位上的編號(hào)即為該位的權(quán)。 l 結(jié)果:把系數(shù)*基數(shù)的權(quán)次冪相加即可。 l 2:十進(jìn)制到其他進(jìn)制 l 除基取余,直到商為0,余數(shù)反轉(zhuǎn)。l 十進(jìn)制和二進(jìn)制的快速轉(zhuǎn)換 8421碼 100轉(zhuǎn)成二進(jìn)制 1

9、01101轉(zhuǎn)成十進(jìn)制 l 二進(jìn)制和八進(jìn)制,十六進(jìn)制如何轉(zhuǎn)換 以十進(jìn)制作為橋梁 二進(jìn)制到八進(jìn)制3位組合 100110 二進(jìn)制到十六進(jìn)制4位組合 100110l 1:8421碼是中國大陸的叫法,8421碼是BCD代碼中最常用的一種。 l 在這種編碼方式中每一位二值代碼的1都是代表一個(gè)固定數(shù)值, l 把每一位的1代表的十進(jìn)制數(shù)加起來,得到的結(jié)果就是它所代表的十進(jìn)制數(shù)碼。l 有符號(hào)數(shù)據(jù)表示法 在計(jì)算機(jī)內(nèi),有符號(hào)數(shù)有3種表示法:原碼、反碼和補(bǔ)碼。所有數(shù)據(jù)的運(yùn)算都是采用補(bǔ)碼進(jìn)行的。 原碼 就是二進(jìn)制定點(diǎn)表示法,即最高位為符號(hào)位,“0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小。 反碼 正數(shù)的反碼與其原碼相

10、同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外。 補(bǔ)碼 正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1。 6 變量l 變量概述 在程序執(zhí)行的過程中,在某個(gè)范圍內(nèi)其值可以發(fā)生改變的量 理解:如同數(shù)學(xué)中的未知數(shù) l 變量定義格式 數(shù)據(jù)類型 變量名 = 初始化值; 注意:格式是固定的,記住格式,以不變應(yīng)萬變 l 1:從本質(zhì)上講,變量其實(shí)是內(nèi)存中的一小塊區(qū)域,使用變量名來訪問這塊區(qū)域,因此,每一個(gè)變量使用前必須要先申請(qǐng)(聲明),然后必須進(jìn)行賦值(填充內(nèi)容),才能使用。通過畫圖說明一個(gè)變量的組成部分 l 數(shù)據(jù)類型,變量名,變量值 l 2:為什么要定義變量呢 l 用來不斷的存放同一類型的常量,并可

11、以重復(fù)使用 數(shù)據(jù)類型Java語言是強(qiáng)類型語言,對(duì)于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型,在內(nèi)存總分配了不同大小的內(nèi)存空間所謂有效數(shù)字:具體地說,是指在分析工作中實(shí)際能夠測量到的數(shù)字。所謂能夠測量到的是包括最后一位估計(jì)的,不確定的數(shù)字。 對(duì)于一個(gè)近似數(shù),從左邊第一個(gè)不是0的數(shù)字起,到精確到的位數(shù)止,所有的數(shù)字都叫做這個(gè)數(shù)的有效數(shù)字。 Java 各整數(shù)類型有固定的表數(shù)范圍和字段長度,其不受具體操作系統(tǒng)的影響,以保證Java程序的可移植性。Java語言的整型常量默認(rèn)為int型,聲明long型常量可以后加 l 或 L ,如: int i1 = 600; /正確 long l1 = 8888888888

12、8L; /必須加l否則會(huì)出錯(cuò)與整數(shù)類型類似,Java浮點(diǎn)類型有固定的表數(shù)范圍和字段長度,不受平臺(tái)影響。Java 浮點(diǎn)類型常量有兩種表示形式 十進(jìn)制數(shù)形式,如: 3.14 314.0科學(xué)記數(shù)法形式,如 3.14e2 3.14*102Java 浮點(diǎn)型常量默認(rèn)為 double 型,如要聲明一個(gè)常量為 float 型,則需在數(shù)字后面加 f 或 F ,如:double d = 12345.6; /正確 float f = 12.3f; /必須加f否則會(huì)出錯(cuò) char 型數(shù)據(jù)用來表示通常意義上的“字符”字符常量為用單引號(hào)括起來的單個(gè)字符,例如:char ch1= 'a' char ch2=

13、'中'Java 字符采用 Unicode 編碼,每個(gè)字符占兩個(gè)字節(jié),因而可用十六進(jìn)制編碼形式表示。注:Unicode是全球語言統(tǒng)一編碼 boolean 類型適于邏輯運(yùn)算,一般用于程序流程控制 。boolean 類型數(shù)據(jù)只允許取值 true 或 false ,不可以 0 或非 0 的整數(shù)替代 true 和 false ,這點(diǎn)和C語言不同。l 編寫案例演示每種不同數(shù)據(jù)類型的變量定義 l 使用變量注意事項(xiàng): 作用域 變量定義在哪一級(jí)大括號(hào)中,哪個(gè)大括號(hào)的范圍就是這個(gè)變量的作用域。相同的作用域中不能定義兩個(gè)同名變量。 初始化值 沒有初始化值不能直接使用 在一行上建議只定義一個(gè)變量 可以

14、定義多個(gè),但是不建議l 編寫案例演示每種不同數(shù)據(jù)類型的變量定義 l 使用變量注意事項(xiàng): 作用域 變量定義在哪一級(jí)大括號(hào)中,哪個(gè)大括號(hào)的范圍就是這個(gè)變量的作用域。相同的作用域中不能定義兩個(gè)同名變量。 初始化值 沒有初始化值不能直接使用 在一行上建議只定義一個(gè)變量 可以定義多個(gè),但是不建議l +是一個(gè)運(yùn)算符, 我們應(yīng)該能夠看懂,做數(shù)據(jù)的加法。 l boolean類型不能轉(zhuǎn)換為其他的數(shù)據(jù)類型 l 默認(rèn)轉(zhuǎn)換 byte,short,charintlongfloatdouble byte,short,char相互之間補(bǔ)轉(zhuǎn)換,他們參與運(yùn)算首先轉(zhuǎn)換為int類型 l 強(qiáng)制轉(zhuǎn)換 目標(biāo)類型 變量名=(目標(biāo)類型)(被

15、轉(zhuǎn)換的數(shù)據(jù));l 1:案例演示隱式轉(zhuǎn)換,并畫圖講解 l byte b = 10;l int i = 100;l System.out.println(b+i);l /有問題 l byte bb = b + i;l System.out.println(bb);l /沒有問題 l int j = b + i;l System.out.println(j);l 2:剛才上面的那個(gè)例子不可以,但是,我們明明知道它就是在這個(gè)范圍內(nèi),我就想賦值,腫么辦呢?l 用強(qiáng)制轉(zhuǎn)換 l 目標(biāo)數(shù)據(jù)類型 變量名 = (目標(biāo)數(shù)據(jù)類型)(被轉(zhuǎn)換的數(shù)據(jù));l 3:那么,我們到底用那種轉(zhuǎn)換呢?l 一般建議,最好不要隨意使用強(qiáng)制

16、類型轉(zhuǎn)換,容易造成數(shù)據(jù)精度的損失。 l (1)容量大的數(shù)據(jù)類型轉(zhuǎn)換為容量小的數(shù)據(jù)類型時(shí),要加上強(qiáng)制轉(zhuǎn)換符,但可能造成精度降低或溢出;使用時(shí)要格外注意。 l (2)有多種類型的數(shù)據(jù)混合運(yùn)算時(shí),系統(tǒng)首先自動(dòng)的將所有數(shù)據(jù)轉(zhuǎn)換成容量最大的那一種數(shù)據(jù)類型,然后再進(jìn)行計(jì)算。 l 面試題 byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是編譯失敗的呢?為什么呢?l 思考題 byte b = 130;有沒有問題?如果我想讓賦值正確,可以怎么做?結(jié)果是多少呢?練習(xí):byte b = 300;b=3+4 ,3和4都是常量,所以java在編譯時(shí)期會(huì)檢查該常量的和是否超出byte類型的范圍。如

17、果沒有可以賦值。b=b1+b2不可以,是因?yàn)閎1和b2是變量,因?yàn)樽兞康闹禃?huì)變化,不確定具體的值,所以默認(rèn)使用int類型進(jìn)行存儲(chǔ)。b=3+4 ,3和4都是常量,所以java在編譯時(shí)期會(huì)檢查該常量的和是否超出byte類型的范圍。如果沒有可以賦值。b=b1+b2不可以,是因?yàn)閎1和b2是變量,因?yàn)樽兞康闹禃?huì)變化,不確定具體的值,所以默認(rèn)使用int類型進(jìn)行存儲(chǔ)。1:在這里引入ASCII碼表 2:任何數(shù)據(jù)和字符串進(jìn)行操作,結(jié)果都是字符串類型。但是要注意運(yùn)算的順序。 數(shù)據(jù)類型中補(bǔ)充幾個(gè)小問題1:在定義Long或者Float類型變量的時(shí)候,要加L或者f。 整數(shù)默認(rèn)是int類型,浮點(diǎn)數(shù)默認(rèn)是double。

18、byte,short在定義的時(shí)候,他們接收的其實(shí)是一個(gè)int類型的值。 這個(gè)是自己做了一個(gè)數(shù)據(jù)檢測的,如果不再它們的范圍內(nèi),就報(bào)錯(cuò)。 2:byte值的問題byte b1 = 127;byte b2 = (byte)128; /-128byte b3 = (byte)129; /-127byte b4 = (byte)130; /-126byte的范圍:-128 127128:10000000-128:10000000 (這里的1即是符號(hào)位,也是數(shù)值位)3:數(shù)據(jù)類型轉(zhuǎn)換之默認(rèn)轉(zhuǎn)換byte,short,char - int - long - float - doublelong: 8個(gè)字節(jié)floa

19、t:4個(gè)字節(jié)A:它們底層的存儲(chǔ)結(jié)構(gòu)不同。B:float表示的數(shù)據(jù)范圍比long的范圍要大long:263-1float:3.4*1038 > 2*1038 > 2*838 = 2*2338 = 2*2114 > 263-14:Java語言中的字符char可以存儲(chǔ)一個(gè)中文漢字嗎?為什么呢?可以。因?yàn)閖ava語言中的字符占用兩個(gè)字節(jié)。Java語言采用的是Unicode編碼??偨Y(jié)1:運(yùn)算符(掌握)(1)算術(shù)運(yùn)算符A:+,-,*,/,%,+,-B:+的用法a:加法b:正號(hào)c:字符串連接符C:/和%的區(qū)別數(shù)據(jù)做除法操作的時(shí)候,/取得是商,%取得是余數(shù)D:+和-的用法a:他們的作用是自增

20、或者自減b:使用*單獨(dú)使用放在操作數(shù)據(jù)的前面和后面效果一樣。a+或者+a效果一樣。*參與操作使用放在操作數(shù)的前面:先自增或者自減,再參與操作int a = 10;int b = +a;放在操作數(shù)的后面:先參與操作,再自增或者自減int a = 10;int b = a+;(2)賦值運(yùn)算符A:=,+=,-=,*=,/=,%=等B:=叫做賦值運(yùn)算符,也是最基本的賦值運(yùn)算符int x = 10; 把10賦值給int類型的變量x。C:擴(kuò)展的賦值運(yùn)算符的特點(diǎn)隱含了自動(dòng)強(qiáng)制轉(zhuǎn)換。面試題:short s = 1;s = s + 1;short s = 1;s += 1;請(qǐng)問上面的代碼哪個(gè)有問題?(3)比較運(yùn)

21、算符A:=,!=,>,>=,<,<=B:無論運(yùn)算符兩端簡單還是復(fù)雜最終結(jié)果是boolean類型。C:千萬不要把=寫成了=(4)邏輯運(yùn)算符A:&,|,!,&&,|B:邏輯運(yùn)算符用于連接boolean類型的式子C:結(jié)論&:有false則false|:有true則true:相同則false,不同則true。情侶關(guān)系。!:非true則false,非false則true&&:結(jié)果和&是一樣的,只不過有短路效果。左邊是false,右邊不執(zhí)行。|:結(jié)果和|是一樣的,只不過有短路效果。左邊是true,右邊不執(zhí)行。(5)位運(yùn)算符(了

22、解)A:的特殊用法一個(gè)數(shù)據(jù)針對(duì)另一個(gè)數(shù)據(jù)位異或兩次,該數(shù)不變B:面試題a:請(qǐng)實(shí)現(xiàn)兩個(gè)變量的交換*采用第三方變量*用位異或運(yùn)算符左邊a,b,a右邊abb:請(qǐng)用最有效率的方式計(jì)算出2乘以8的結(jié)果2<<3(6)三元運(yùn)算符A:格式比較表達(dá)式?表達(dá)式1:表達(dá)式2;B:執(zhí)行流程:首先計(jì)算比較表達(dá)式的值,看是true還是false。如果是true,表達(dá)式1就是結(jié)果。如果是false,表達(dá)式2就是結(jié)果。C:案例:a:比較兩個(gè)數(shù)據(jù)是否相等b:獲取兩個(gè)數(shù)據(jù)中的最大值c:獲取三個(gè)數(shù)據(jù)中的最大值2:鍵盤錄入(掌握)(1)實(shí)際開發(fā)中,數(shù)據(jù)是變化的,為了提高程序的靈活性,我們加入鍵盤錄入數(shù)據(jù)。(2)如何實(shí)現(xiàn)呢?目前就記住A:導(dǎo)包import java.util.Scanner;位置:在class的上邊B:創(chuàng)建對(duì)象Scanner sc = new Scanner(System.in);C:獲取數(shù)據(jù)int x = sc.nextInt();(3)把三元運(yùn)算符的案例加入鍵盤錄入改進(jìn)。3:流程控制語句(1)順序結(jié)構(gòu) 從上往下,依次執(zhí)行(2)選擇結(jié)構(gòu)按照不同的選擇,執(zhí)行不同的代碼(3)循環(huán)結(jié)構(gòu) 做一些重復(fù)的代碼4:if語句(掌握)(1)三種格式

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論