999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

引入JDK源碼學習的Java程序設計實踐教學

2015-12-29 00:00:00唐大仕
計算機教育 2015年7期

文章編號:1672-5913(2015)07-0040-03

中圖分類號:G642

摘 要:提出在課程中引入JDK源碼的學習,闡述通過閱讀、分析、重寫及應用JDK源碼,學習JDK源碼中的語法、基本庫、數據結構、設計模式等內容,能提高源代碼的閱讀能力、編寫規范代碼的能力,并為應用設計模式、架構復雜項目打下良好的基礎。

關鍵詞:Java程序設計;JDK;源碼;實踐教學;編程能力;設計模式

0 引言

Java語言是當前最流行的面向對象編程語言之一,具有平臺無關性、多線程、分布式及安全性等特點。作為計算機專業及相關專業的一門重要課程,Java語言也不只講語言語法,而更加注意其實踐應用,所以加強其編程實踐和應用是該課程的重要目標。特別是當前用人單位對大學生的綜合素質提出了新的要求,這就迫切需要對現有的教學模式進行改革,才能適應計算機教學的需要。根據實踐,我們提出在課程中引入JDK源碼的教學方法。

JDK( Java Development Kit)是Java語言的軟件開發工具包,包括JavaSE、JavaEE、JavaME等多個版本,其中最基礎的是JavaSE。在JDK中,有一系列的開發工具、運行環境,還有最重要的JDK文檔及JDK源碼。JDK源碼用于程序設計的實踐教學中,能有效提高學生的程序設計能力,切實提高教學效果,是教學改革的一條途徑。筆者將JDK源碼給學生進行閱讀、分析、改造、應用,使其掌握編程思想、編碼方式、采用的技術、應用過程等相關知識。

1 學習內容

JDK源碼的量很大,要學習的內容也涉及多個方面。

1.1 語法方面的學習

Java程序設計課程首先要讓學生學會Java語法,Java語言的語法不僅枯燥,而且不容易掌握。在JDK源碼中有大量語法的體現,從變量、常量到運算符、語句、類的定義等方面都有很好的體現,所以精簡一部分包及類來進行學習,體現其語法的使用,而且體現面向對象的封裝、繼承、多態,特別是繼承關系的分析,以讓學生更具體地體會面向對象的思想與方法。

1.2 基本類庫的學習

Java語法的學習不能只停留在語法層面,而是要培養實踐應用的能力,這就需要掌握大量的API類庫。由于Java類庫中的類很多,每一個類中的方法也很多,所以我們選擇重要的類庫源碼來學習,主要包括Java的基本類庫、輸入輸出(Java IO)、文本信息的處理、XML信息的處理、圖形與圖像、圖形用戶界面、網絡、數據庫等。

1.3 數據結構的學習

Java語言中,各類編程都要用到數據結構。雖然有的學生學過數據結構,包括線性表、棧、隊列、串、樹、查找、排序等,但是JDK中,這些數據結構是如何實現的,它們都有哪些相關的類,分別使用的是順序存儲、鏈式存儲還是哈希存儲,學習這些不僅有利于復習鞏固數據結構知識,更重要的是可以學到更多的實現方法,而且在應用這些結構時會正確選用合適的類。

1.4 設計模式的學習

設計模式(design pattern)是一套被反復使用、多數人知曉、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼,讓代碼更容易被他人理解,保證代碼的可靠性。在實現的軟件開發實踐中,設計模式是相當重要的,在JDK中,使用了大量的設計模式,如抽象工廠、單態、適配器、責任鏈、代理、觀察者等,通過源代碼來學習設計模式,可以讓學生更具體地體會到設計模式的應用,從而能讓學生更好地打下應用設計模式基礎。

2 學習方法

JDK源碼的學習方法主要是閱讀、分析以及修改、應用等,在這個過程中教師要通過演示、引導、作業等手段來促進學生對JDK源碼的學習。

2.1 有選擇性地閱讀源代碼,撰寫讀書筆記

由于源代碼的量很大,沒有必要將所有JDK的源碼都讀取一遍,所以針對前面提到的每一方面的學習內容,教師會指定閱讀相關的包和類的源代碼。例如,在前半學期中要求閱讀的類包括Obj ect,Class,String,StringBuilder及AbstractStringBuilder. Integer, Math, Random,Biglnteger等;后半學期則要求閱讀Arrays,ArrayList, Vector, Stack, Hashtable, TreeMap,TreeSet類等。教師還指定一些擴展的包和類,供能力較強的學生進行閱讀。學生閱讀后要撰寫讀書筆記,對典型的讀書筆記進行演示匯報,這樣的匯報可以在小組內或者全班進行,以促進理解和交流。

2.2 教師布置讀前的問題及讀后作業,促進閱讀質量提高

閱讀前,教師有針對性地提出一些問題,這樣可以讓學生知道閱讀的重點和思考的問題,讀后作業則檢查學生學習的效果。布置的作業中包括這樣的問題:String類為什么聲明為final的?Random類引用了什么內部類或輔助類?Stack類中的變量的初始值為什么這樣設置?其ArrayList類動態分配空間的增長因子是多少?TreeMap類與另一個相關的TreeSet類的區別是什么?

2.3 與JDK文檔對照學習

JDK源碼與JDK文檔進行對照學習??紤]到部分學生的英文實際水平,我們選用中文版的JDK文檔,而英文水平較好的則可以使用英文版的JDK。例如,在String文檔中提到immutable,在源程序中是如何體現的?在Byte中提到的緩存,在源程序是如何實現的?Random類提到的偽隨機數是如何實現的?TreeMap中找到同一對象的要求是如何實現的?等,這些問題涉及語法、算法、效率等多方面的問題。另外,對有余力的學生,還讓他們讀不同版本的JDK的源碼,體會其中源代碼的演變,分析其改進之處。

2.4 學生寫出分析報告,并進行展示與交流

針對閱讀的內容,我們要求學生寫出分析報告。報告要求寫出主要的類、主要的方法;類與類之間的關系(畫出類關系圖、UML圖);主要函數的算法是怎樣的(畫出流程圖、事件序列圖、狀態圖等);算法的時間復雜度與空間復雜度如何;用到了哪種設計模式等。另外,要求寫出學到的關于語法、算法、編程技巧方法的收獲。這些報告要形成文檔、展示的PPT、Prezi等,在班上進行交流展示,還讓學生進行評選投票。

2.5 進行代碼的重寫、改進與應用

在閱讀的基礎上,我們要求學生進一步進行代碼的重寫、改進與應用。代碼的重寫是指針對其中部分代碼自己重寫一遍,這樣能訓練編寫代碼的能力。在這個過程中,學生還可以有針對性地進行代碼的改進。另外,在實際的項目中,應用相關的包和類,這樣易于進一步鞏固所學的知識。

3 學習JDK源碼對學生編程能力的提高

JDK源碼的學習過程,提高了學生以下幾個方面的能力。

3.1 閱讀代碼的能力

閱讀代碼的能力訓練是編程能力中一個重要的方面。事實上,軟件的編寫與維護通常是一個長期的過程,閱讀別人寫的代碼是很常見的任務,但有時也要閱讀自己寫的代碼。閱讀JDK源碼可以大大提高閱讀代碼的能力。

3.2 編寫規范代碼的能力

JDK源碼書寫規范,其中能學到規范代碼的編寫方法,有利于養成良好的編程習慣。這包括注釋的使用、空行的使用、變量命名、函數的命名慣例等。

3.3 使用設計模式的能力

JDK源碼中有大量設計模式的應用,通過對這些設計模式的學習,能很好地體會各種設計模式的含義、基本組成要素、種要素之間的關系、設計模式的應用場景,這些都為以后在具體項目中使用設計模式打下良好的基礎。

3.4 項目架構的能力

JDK源碼是一系列的包與類組成的一個大的系統,而類與類之間的關系有各種形式,通過對它們的學習,能幫助學生提高設計復雜程序的能力,為以后進行項目架構的工作打下良好的基礎。

4 結語

在Java程序設計課程中引入JDK源碼的學習,通過在語法、基本庫、數據結構、設計模式等多方面的學習,有效地提高了學生源代碼的閱讀能力、編寫規范代碼的能力,并為應用設計模式、架構復雜項目打下良好的基礎。在北京大學的Java程序設計課程中使用JDK源碼進行教學,起到了較好的教學效果。

主站蜘蛛池模板: 华人在线亚洲欧美精品| 欧美成人精品一级在线观看| 欧美国产日产一区二区| 亚洲av片在线免费观看| 亚洲精品在线观看91| 97se综合| 992tv国产人成在线观看| 美女被躁出白浆视频播放| 国产成人高清精品免费软件| 欧美中文字幕一区| 91精品久久久无码中文字幕vr| 欧美精品成人| 亚洲天堂久久| 成人国产小视频| 国产麻豆精品久久一二三| a网站在线观看| 国产91精品调教在线播放| 青青操国产| 亚洲天堂网在线视频| 找国产毛片看| 亚洲日韩图片专区第1页| 亚洲欧美自拍视频| 麻豆AV网站免费进入| 九色免费视频| 亚洲无码久久久久| yjizz国产在线视频网| 亚洲一区二区三区国产精华液| 91色国产在线| 国产呦精品一区二区三区下载 | 久久精品丝袜| 成人av专区精品无码国产| 欧洲亚洲一区| 精品人妻无码中字系列| 国产视频一二三区| 亚洲精品高清视频| 大香伊人久久| 国产免费久久精品99re不卡 | 一级毛片在线播放免费| 国产91蝌蚪窝| 国产主播一区二区三区| 日本三区视频| 99精品一区二区免费视频| 伦精品一区二区三区视频| 在线中文字幕网| 91原创视频在线| 国产成人凹凸视频在线| 青青草国产免费国产| 手机成人午夜在线视频| 999国内精品久久免费视频| 一级不卡毛片| 日韩黄色精品| 欧美午夜视频在线| 国产极品粉嫩小泬免费看| 一本一道波多野结衣av黑人在线| 亚洲人成网站在线观看播放不卡| 一级毛片在线播放免费观看| 91在线激情在线观看| 国产欧美日韩视频一区二区三区| 97精品伊人久久大香线蕉| 国产精品七七在线播放| 在线毛片网站| 亚洲天堂精品在线| 欧美性久久久久| 毛片在线看网站| 欧美一级特黄aaaaaa在线看片| 国产精品白浆在线播放| 伊在人亞洲香蕉精品區| 国产午夜在线观看视频| 国产亚洲男人的天堂在线观看| 97se亚洲综合在线天天| 久久人妻xunleige无码| a网站在线观看| 久久婷婷国产综合尤物精品| 亚洲AⅤ波多系列中文字幕| 国产精品视频a| 在线观看国产一区二区三区99| 国产午夜看片| 亚洲精品无码久久久久苍井空| 在线99视频| 91久久性奴调教国产免费| 亚洲中文字幕无码爆乳| 亚洲天堂成人在线观看|