本套課程為Java高級(jí)調(diào)試技術(shù)公開課講座,是學(xué)習(xí)java編程必學(xué)課程,在開發(fā)程序的過程中,程序員其實(shí)是將較少的時(shí)間花在程序編寫上,其他更多的時(shí)間是在調(diào)試程序的過程中。市面上有很多講解編程技術(shù)的書籍,然而涉及到發(fā)現(xiàn)問題的調(diào)試技術(shù),卻寥寥無幾。
   調(diào)試技術(shù)實(shí)務(wù)分為調(diào)試基本概念和設(shè)置,通過使用JDK自帶的一些工具來調(diào)試Java程序中的疑難癥狀。不僅僅介紹了枯燥的程序調(diào)試技術(shù),還深入的從操作系統(tǒng)實(shí)現(xiàn)以及Java虛擬機(jī)實(shí)現(xiàn)的本質(zhì)出發(fā),介紹調(diào)試工作中的工作方法、流程和相關(guān)技術(shù)。
   本課程的作者長期從事程序調(diào)試工作,參與了大量的程序調(diào)試工作。本課程是培訓(xùn)講師多年程序調(diào)試工作經(jīng)驗(yàn)的總結(jié),從程序調(diào)試的基本技術(shù)入手,針對大量實(shí)戰(zhàn)案例進(jìn)行剖析,讓學(xué)員在掌握相關(guān)技術(shù)的同時(shí),真正學(xué)會(huì)程序調(diào)試的方法。
很多程序員并沒有熟悉到排除軟件的錯(cuò)誤的價(jià)值,假如你是一個(gè)JAVA開發(fā)者,就很值得讀一讀這個(gè)材料。在現(xiàn)代工具的幫助下,開發(fā)者成為一個(gè)好的調(diào)試者和成為一個(gè)好的程序員的重要性一樣。
    這個(gè)材料假設(shè)你已經(jīng)有基本的JAVA編程的知識(shí),假如你精通JAVA,這個(gè)材料也可以增加你很多知識(shí)。
    假如你有其他語言的調(diào)試經(jīng)驗(yàn),你可以跳過基本知識(shí)部分。
    即使是高級(jí)程序員開發(fā)的小程序也可能包含錯(cuò)誤。你只需要理解調(diào)試的概念并熟悉合適的工具就可以成為好的調(diào)試者。這份材料將講解JAVA調(diào)試的基本概念,也討論高級(jí)的調(diào)試類型。我們將瀏覽不同的技術(shù)并且提供一些好的建議去幫助避免,追蹤并最終修正程序的錯(cuò)誤。
    我們將通過一個(gè)調(diào)試范例以使你熟悉調(diào)試技術(shù)。我們也將使用開發(fā)源代碼工具Jikes 和JDB向你演示如何調(diào)試服務(wù)器端和客戶端程序。為了編譯和運(yùn)行范例代碼,你需要先安裝一個(gè)Java Development Kit (JDK) ,你可以參考后面的部分獲得Jikes 和 JDB調(diào)試器。
    關(guān)于作者
    假如對這個(gè)材料的內(nèi)容有任何問題,你可以聯(lián)系作者Laura Bennett, lbenn@us.ibm.com
    假如對中文版的翻譯有何意見和建議,請聯(lián)系翻譯者cherami ,cherami@163.net 。
    Laura Bennett 是IBM的資深軟件工程師。她獲得Pace大學(xué)的計(jì)算機(jī)科學(xué)學(xué)士學(xué)位和Columbia大學(xué)的計(jì)算機(jī)科學(xué)碩士學(xué)位。她是developerWorks的JAVA傳教士,同時(shí)也是站點(diǎn)的建設(shè)者。在他的空余時(shí)間,她喜歡和她的Lego MindStorm 機(jī)器人玩樂以及和她四歲大的TinkerToys搭建物體。
    Cherami是一個(gè)軟件工程師,閑暇之余翻譯一些計(jì)算機(jī)文獻(xiàn),以期為中國的計(jì)算機(jī)軟件事業(yè)做出一點(diǎn)微薄的貢獻(xiàn)。
    調(diào)試的基礎(chǔ)知識(shí)
    開始的情況
    在JAVA語言的早期,一個(gè)典型的開發(fā)者使用非常陳舊的方法調(diào)試程序:使用System.out.PRintln() 方法。代碼的跟蹤信息被打印到控制臺(tái)、文件或者套接字。
    很少有人能在第一次就寫出完美的(沒有任何錯(cuò)誤)代碼。因此,市場熟悉到了對于像C++ 程序員使用的調(diào)試器那樣的工具的需要。Java開發(fā)者現(xiàn)在有很多調(diào)試工具可以選擇,選擇什么樣的工具依靠于你的技術(shù)等級(jí)。通常新手使用GUI調(diào)試工具而有更多經(jīng)驗(yàn)的程序員趨向于避免使用所見即所得的工具而更關(guān)心有更多的控制能力。沒有哪個(gè)開發(fā)者不使用任何調(diào)試工具。調(diào)試器答應(yīng)你穿越代碼,凍結(jié)輸出以及檢查變量。開發(fā)者越有經(jīng)驗(yàn),調(diào)試工具越可以幫助他更快定位程序問題的位置。
    Java調(diào)試器的類型
    這里有幾種Java調(diào)試技術(shù)的工具:
    IDE(集成開發(fā)環(huán)境) 包含它們自己的調(diào)試器 (例如IBM的VisualAge for Java, Symantec Visual Café以及 Borland JBuilder)
    單獨(dú)的GUI工具 (例如Jikes, Java 平臺(tái)調(diào)試器 javadt, 以及JProbe)
    基于文本和命令行的工具 (例如Sun JDB)
    野蠻的使用編輯器 (例如Notepad 或者 VI) 檢查堆棧描繪(stack traces)
    你使用的 JDK, JSDI, jsp, 和Html對你的選擇都有影響。
    IDE 和獨(dú)立的GUI 調(diào)試器對于初學(xué)者是最輕易的并且被證實(shí)是最節(jié)省時(shí)間的。調(diào)試器將引導(dǎo)你到程序崩潰的地方。在調(diào)試器里面執(zhí)行程序,使用鼠標(biāo)設(shè)置斷點(diǎn)并穿越代碼。使用這些調(diào)試器的不利方面是并非所有的IDE調(diào)試器都支持最新的Java API和技術(shù) (例如servlets 和 EJB 組件)。
    基于文本和野蠻的使用編輯器的技術(shù)提供更多的控制但是對于沒有太多經(jīng)驗(yàn)的程序員可能會(huì)花費(fèi)更長的時(shí)間找出錯(cuò)誤。我們稱它們?yōu)?ldquo;可憐人的”調(diào)試方法。
    假如上面的都不滿足你的需求, Java平臺(tái)引入Java Debugging APIs使你可以創(chuàng)建符合你自己特定需求的調(diào)試器。

郵箱
huangbenjincv@163.com

长寿区| 长岭县| 鄂尔多斯市| 宁都县| 湘乡市| 南通市| 荣昌县| 珠海市| 六枝特区| 彰化市| 甘谷县| 巍山| 张家港市| 宜昌市| 铜梁县| 汶上县| 南投市| 丰台区| 乐业县| 定日县| 同德县| 吴旗县| 聂荣县| 枣阳市| 外汇| 太原市| 巨鹿县| 泰来县| 岳普湖县| 大理市| 浦县| 柘荣县| 宣化县| 英吉沙县| 五河县| 翼城县| 斗六市| 宣恩县| 南召县| 柏乡县| 永寿县|