課件java基礎(chǔ)培訓(xùn)第四天_第1頁
課件java基礎(chǔ)培訓(xùn)第四天_第2頁
課件java基礎(chǔ)培訓(xùn)第四天_第3頁
課件java基礎(chǔ)培訓(xùn)第四天_第4頁
課件java基礎(chǔ)培訓(xùn)第四天_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java基礎(chǔ)培訓(xùn) 第四天內(nèi)容大綱 Java中的包 Java中的數(shù)組 Java中的異常處理 Java中的線程Android技術(shù)咨詢Android學(xué)習(xí)交流內(nèi)容大綱 Java中的包 Java中的數(shù)組 Java中的異常處理 Java中的線程Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的包問題?名稱C語言中所有的函數(shù)都是全局的,因此在多人合作的大型項(xiàng)目開發(fā)中容易出現(xiàn)兩個(gè)函數(shù)同名的情況如:A完成的.c文件中有一個(gè)名為compare的函數(shù),B完成的.c文件中也有名為compare的函數(shù)C語言中?是通過在函數(shù)名上加上前綴來解決名稱問題Java中是不是也有類似的問題呢?Android技術(shù)咨詢Andro

2、id學(xué)習(xí)交流Java中的包 Java字節(jié)碼文件ü Java中的基本程序單元是類ü 每個(gè)類在經(jīng)過編譯之后將生成一個(gè)對(duì)應(yīng)的.class文件ü .class是Java虛擬機(jī)上的字節(jié)碼文件,是Java虛擬機(jī)上的可執(zhí)行 文件ü Java源文件在經(jīng)過編譯之后會(huì)在其目錄下生成源文件中每個(gè)類的字節(jié)碼文件Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的包 Java中的包包是Java中組織類和管理類名空間的方式?位于不同的類即使同名也?包實(shí)際上是類的容器并且提供了類的可見性限制機(jī)制package關(guān)鍵字用于將文件中對(duì)應(yīng)類的字節(jié)碼文件裝入從操作系統(tǒng)的觀念看,每個(gè)pack

3、age對(duì)應(yīng)一個(gè)邏輯文件夾?Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的包裝包示例ndroid技術(shù)咨詢Android學(xué)習(xí)交流Java中的包包的使用示例ü Java中通過import關(guān)鍵字使用的類問題:1.的類是不是也可以像類中的屬性一樣限定其可見性?And2.ro是i不d是技可術(shù)以一咨次詢導(dǎo)Android學(xué)習(xí)交流;Java中的包類的可見性Java語言規(guī)定一個(gè)文件中只能有一個(gè)類被?為publicpublic類必須與文件名完全相同(不文件后綴)Java中的類可見性只有可見和不可見兩種public類可以被其它?的類導(dǎo)入使用非public類只能被同一個(gè)?的類使用protected和

4、private不能用于限定類的可見性?Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的包權(quán)限總結(jié)Android技術(shù)咨詢Android學(xué)習(xí)交流同一個(gè)類同一個(gè)的類不同的子類不同的非子類privateyesdefaultyesyesprotectedyesyesyespublicyesyesyesyesJava中的包一些建議?每個(gè)屬性和都顯示權(quán)限,不使用默認(rèn)權(quán)限盡量設(shè)置為private對(duì)于邏輯上對(duì)外不可見的屬性和雖然Java語言中同一個(gè)?的其它非子類可以protected成員,但這是不推薦的將邏輯上相關(guān)的類組織在同一個(gè)?,以包的形式組織程序的類Android技術(shù)咨詢Android學(xué)習(xí)交流Ja

5、va中的包?練習(xí)將第三天實(shí)例課中練習(xí)中的類按邏輯打包?提示和Teacher是邏輯相關(guān)的類,應(yīng)該放到同一個(gè)包,LinkList,TextFileer和TextFileWriter為輔助類,可以放到同一個(gè)包Android技術(shù)咨詢Android學(xué)習(xí)交流內(nèi)容大綱 Java中的包 Java中的數(shù)組 Java中的異常處理 Java中的線程Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的數(shù)組基本概念Java中的數(shù)組不是C語言中的連續(xù)內(nèi)存塊,而是對(duì)象?Java通過數(shù)據(jù)類型標(biāo)示數(shù)組符號(hào)?數(shù)組對(duì)象的int a = null; String str = null;double d = null;Java中通

6、過new關(guān)鍵字生成具體的數(shù)組對(duì)象?float f = new float30;String s = new String5;Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的數(shù)組?數(shù)組的Java中通過數(shù)組對(duì)象和數(shù)組符號(hào)可以數(shù)組中的元素Java中數(shù)組的下標(biāo)從0開始到length-1結(jié)束Java中的數(shù)組是對(duì)象,因此提供了一些有用的屬性和?數(shù)組長(zhǎng)度length直接包含在數(shù)組對(duì)象中數(shù)組對(duì)象的clone直接提供當(dāng)前數(shù)組的一份拷貝Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的數(shù)組數(shù)組使用示例問題:Android技術(shù)咨詢tring5;數(shù)組對(duì)象元素的默認(rèn)值A(chǔ)ndroid學(xué)習(xí)交流Java中的數(shù)組

7、二維數(shù)組Java中的二維數(shù)組本質(zhì)上也是一維數(shù)組可以把二維數(shù)組看成是數(shù)組的數(shù)組,即一維數(shù)組中的每個(gè)元素還是一個(gè)數(shù)組?二維數(shù)組的定義方式如下int matrix1 = null;int matrix2 = null;Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的數(shù)組二維數(shù)組示例小結(jié):AndJarvoa中id任技意維術(shù)的咨數(shù)組詢都 Android學(xué)習(xí)交流數(shù)組”。Java中的數(shù)組數(shù)組總結(jié)Android技術(shù)咨詢Android學(xué)習(xí)交流b10 : intb11 : intb12 : inta0 : inta1 : inta2 : intJava中的數(shù)組main再憶ü 修飾Main類的pu

8、blic關(guān)鍵字只是想讓Main類能夠被其它類導(dǎo)入使用ü main行參數(shù)中的參數(shù)String args是一個(gè)字符串?dāng)?shù)組,用于接收命令ü 命令行參數(shù)是Java虛擬機(jī)調(diào)用main時(shí)傳遞給main的參數(shù)Android技術(shù)咨詢Android學(xué)習(xí)交流字是否可以去掉?Java中的數(shù)組命令行輸入示例小結(jié):1.Android技術(shù)2.Android學(xué)3習(xí).javac命令用于將Java源文件編譯為.class可執(zhí)行文件咨jav詢a命交java流命為main入mainJava中的數(shù)組?練習(xí)利用二維String數(shù)組打印乘法口訣表,要求利用最少的空間實(shí)現(xiàn)。Android技術(shù)咨詢Android學(xué)習(xí)交流內(nèi)

9、容大綱 Java中的包 Java中的數(shù)組 Java中的異常處理 Java中的線程Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的異常處理基本概念?異常是在程序運(yùn)行過程中發(fā)生的異常,如:除0溢出數(shù)組越界文件找不到?為了加強(qiáng)程序的健壯性必須考慮可能發(fā)生的異常并作出相應(yīng)處理C語言中通過使用if語言和函數(shù)返回值Java中通過面向?qū)ο蟮姆绞教幚懋惓.?dāng)異常出現(xiàn)時(shí),系統(tǒng)會(huì)根據(jù)異常類型“拋出”不同的異常對(duì)象是否出現(xiàn)異常?Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的異常處理?Java的異常Exception類對(duì)象是Java程序處理或拋出的對(duì)象Exception的各種不同子類分別對(duì)應(yīng)于不同類型

10、的異常Java程序運(yùn)行過程中產(chǎn)生的異??赡茉谌我獾牟课话l(fā)生在異常產(chǎn)生時(shí),系統(tǒng)會(huì)生成異常對(duì)象并拋出?如果沒有異常處理代碼,系統(tǒng)將用默認(rèn)的異常處理程序接收異常對(duì)象,并將異常對(duì)象輸出Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的異常處理常見異常類型舉例ArithmeticExceptionNullPointerExceptionClassCastExceptionNegativeArraySizeExceptionArrayIndexOutOfBoundsExceptionJava中的異常處理異常捕獲Java中可以把可能產(chǎn)生異常的程序語句“放入”try語句塊中在try語句塊后必須跟上一個(gè)或

11、多個(gè)catch語句塊每個(gè)catch語句塊處理一種類型的異常 當(dāng)對(duì)應(yīng)異常產(chǎn)生時(shí)catch語句塊將被執(zhí)行catch語句塊后可以跟上一個(gè)finally語句塊finally語句塊是一定會(huì)被執(zhí)行的語句塊?注意:Android技1術(shù).Android學(xué)2習(xí).咨Jav詢a中觸交發(fā)流異觸發(fā)句將得不到執(zhí)行Java中的異常處理異常處理示例1小結(jié):Java中的異常處理機(jī)制將處理異常的代碼和“常規(guī)”ndroid技術(shù)咨代碼詢。Android學(xué)習(xí)交流Java中的異常處理異常處理示例2Tips:1.2.3.throw關(guān)鍵字用于“拋出”一個(gè)異常對(duì)象執(zhí)行throw語句之后運(yùn)行流程立即停止系統(tǒng)立即檢查是否有能夠匹配的catch語句

12、塊4.如果找到則執(zhí)ndroid5.技如術(shù)果找咨不到詢則應(yīng)的c找catch語句塊被拋到系統(tǒng)異常處理Android6.學(xué)如習(xí)果一交直找流不cJava中的異常處理?總結(jié)try用于定義可能發(fā)生異常的代碼段catch代碼段緊跟在try代碼段后面try后面可以有一個(gè)或者多個(gè)catch代碼段如果有多個(gè)catch代碼段那么程序只會(huì)進(jìn)入其中某一個(gè)catch?catch捕捉的多個(gè)異常之間有繼承finally代碼段可以要也可以不要?的話,要先捕捉子類后捕捉父類?Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的異常處理?練習(xí)定義一個(gè)做除法的,要求輸入兩個(gè)float類型的值作為參數(shù),返回值為“Error, p

13、/ q!”的為兩數(shù)相除。當(dāng)產(chǎn)生除零異常的時(shí)候拋出一個(gè)ArithmeticException對(duì)象,其中p為第一個(gè)參數(shù)的值,q為第二個(gè)參數(shù)的值。?原型如下:float div(float p, float q);Android技術(shù)咨詢Android學(xué)習(xí)交流內(nèi)容大綱 Java中的包 Java中的數(shù)組 Java中的異常處理 Java中的線程Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的線程基本概念進(jìn)程就是一個(gè)執(zhí)行中的程序?線程是進(jìn)程中單個(gè)執(zhí)行的Java程序通過流控來執(zhí)行程序控?多線程指的是在單個(gè)可以同時(shí)運(yùn)行多個(gè)不同的線程Java中的每個(gè)線程都是一個(gè)單獨(dú)的對(duì)象Android技術(shù)咨詢Androi

14、d學(xué)習(xí)交流Java中的線程?基本概念Java中可以通過繼承Th類實(shí)現(xiàn)線程類Th的子類必須重寫父類的run()Java中也可以通過實(shí)現(xiàn)Runnable接口實(shí)現(xiàn)線程類run()?體是線程執(zhí)行的線程對(duì)象通過調(diào)用start()原型啟動(dòng)線程?public Th public Th public Thpublic run();();(String name); (Runnable target);public start();思考:Java中為什么要設(shè)計(jì)兩種方式實(shí)現(xiàn)線程對(duì)象?Java中的線程多線程示例1Tips:run()start()詢直流sl是Java線程的調(diào)用后將啟動(dòng)線程執(zhí)行run()是普通的ndr

15、oid技術(shù)咨調(diào)用Android學(xué)習(xí)交在try語句塊中調(diào)用當(dāng)Test.javaJava中的線程多線程示例2Tips:實(shí)現(xiàn)Runnable接口的類必須實(shí)現(xiàn)run()Th類可以接受實(shí)現(xiàn)Runnable接口的類作為線程的執(zhí)行體Java中的Runnable接口機(jī)制是為了讓所有子類有機(jī)會(huì)成為執(zhí)行多線程Test.javaJava中的線程Java中線程的狀態(tài)創(chuàng)建可運(yùn)行不可運(yùn)行運(yùn)行中?創(chuàng)建:線程對(duì)象創(chuàng)建?可運(yùn)行:線程對(duì)象創(chuàng)建之后系統(tǒng)為其分配資源?運(yùn)行中:系統(tǒng)執(zhí)行線程體不可運(yùn)行:線程需要等待臨界資源或IO操作時(shí)An?dr:技線術(shù)程執(zhí)咨行詢結(jié)Android學(xué)習(xí)交流Java中的線程Java中的線程臨界區(qū)?系統(tǒng)中每次只

16、一個(gè)線程的資源叫做臨界資源?對(duì)臨界資源進(jìn)行的程序代碼區(qū)域叫做臨界區(qū)Java中通過synchronized關(guān)鍵字和對(duì)象鎖機(jī)制對(duì)臨界區(qū)進(jìn)行管理Java中的每個(gè)對(duì)象都可以作為對(duì)象鎖使用?Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的線程生產(chǎn)消費(fèi)者問題生成者創(chuàng)建對(duì)象?消費(fèi)者取出對(duì)象規(guī)則:消費(fèi)者不能在生產(chǎn)者放入創(chuàng)建之前從隊(duì)列中取出對(duì)象提示:日常生活中我們Android技術(shù)咨詢Android學(xué)習(xí)交流會(huì)怎么解決這個(gè)問題?Java中的線程生產(chǎn)消費(fèi)者問題解決方案Andro Andro15962116Java中的線程生產(chǎn)消費(fèi)者問題解決方案AAndroid學(xué)習(xí)交流Java中的線程生產(chǎn)消費(fèi)者問題解決方案AA

17、ndroid學(xué)習(xí)交流Java中的線程生產(chǎn)消費(fèi)者問題解決方案問題:1v統(tǒng)概念中PV操作?程進(jìn)入的臨界ndroid技術(shù)咨詢2Android學(xué)習(xí)交流Java中的線程對(duì)象鎖相關(guān)的Java中的每個(gè)對(duì)象都可以作為鎖使用每個(gè)對(duì)象都可以通過wait(), notify()和notifyAll()?提供鎖機(jī)制wait() 調(diào)用該notify() 調(diào)用該notifyAll() 調(diào)用該的線程進(jìn)入不可運(yùn)行態(tài)后“等待”于對(duì)應(yīng)對(duì)象的一個(gè)線程被喚醒?后“等待”于對(duì)應(yīng)對(duì)象的所有線程同時(shí)被喚醒?Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的線程線程鎖實(shí)現(xiàn)示例Andro Andr9616Java中的線程線程鎖使用示例Android技術(shù)咨詢Android學(xué)習(xí)交流Java中的線程線程鎖使用示例ü wait()ü wait()ü wait()的作用是使得當(dāng)前調(diào)用的線程進(jìn)入不可運(yùn)行狀態(tài)必須在對(duì)應(yīng)對(duì)象的synchronized代碼

溫馨提示

  • 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. 人人文庫(kù)網(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)論