国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

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

中圖分類號:G642

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

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

0 引言

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

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

1 學習內(nèi)容

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

1.1 語法方面的學習

Java程序設計課程首先要讓學生學會Java語法,Java語言的語法不僅枯燥,而且不容易掌握。在JDK源碼中有大量語法的體現(xiàn),從變量、常量到運算符、語句、類的定義等方面都有很好的體現(xiàn),所以精簡一部分包及類來進行學習,體現(xiàn)其語法的使用,而且體現(xiàn)面向?qū)ο蟮姆庋b、繼承、多態(tài),特別是繼承關系的分析,以讓學生更具體地體會面向?qū)ο蟮乃枷肱c方法。

1.2 基本類庫的學習

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

1.3 數(shù)據(jù)結構的學習

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

1.4 設計模式的學習

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

2 學習方法

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

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

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

2.2 教師布置讀前的問題及讀后作業(yè),促進閱讀質(zhì)量提高

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

2.3 與JDK文檔對照學習

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

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

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

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

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

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

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

3.1 閱讀代碼的能力

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

3.2 編寫規(guī)范代碼的能力

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

3.3 使用設計模式的能力

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

3.4 項目架構的能力

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

4 結語

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

罗山县| 三明市| 佛冈县| 平邑县| 鄂伦春自治旗| 丹东市| 集安市| 灵宝市| 伊宁市| 泰顺县| 邹平县| 定西市| 舒兰市| 大石桥市| 汝城县| 福贡县| 塔城市| 都江堰市| 华池县| 筠连县| 鹤庆县| 灌阳县| 宿州市| 嫩江县| 施秉县| 克山县| 延川县| 伊金霍洛旗| 邢台县| 垦利县| 鄯善县| 海林市| 凭祥市| 民丰县| 集贤县| 陆川县| 墨竹工卡县| 肥乡县| 临城县| 灵台县| 景谷|