欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

分享Java程序員應(yīng)該知道的10個調(diào)試技巧

 更新時間:2012年09月26日 17:38:24   作者:  
在本文中,作者將使用大家常用的的開發(fā)工具Eclipse來調(diào)試Java應(yīng)用程序。但這里介紹的調(diào)試方法基本都是通用的,也適用于NetBeans IDE,我們會把重點放在運行時上面

可以幫助識別和解決應(yīng)用程序缺陷,在本文中,作者將使用大家常用的的開發(fā)工具Eclipse來調(diào)試Java應(yīng)用程序。但這里介紹的調(diào)試方法基本都是通用的,也適用于NetBeans IDE,我們會把重點放在運行時上面。

在開始之前,推薦大家去看看Eclipse shortcuts這篇文章,它將會給你帶來很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在開始前給大家提3點建議!

不要使用System.out.println作為調(diào)試工具 把所有涉及到的組件日志級別激活并使用 使用日志分析器來讀取日志

1.條件斷點

如果你不知道如何添加斷點,只需點擊左邊面板(行號前面)斷點即被創(chuàng)建。在調(diào)試界面中,“斷點”視圖會把所有被創(chuàng)建的斷點列出來。我們可以給它加一個布爾條件,也就是說,該斷點會被激活并且如果布爾條件為真,就會執(zhí)行該斷點,否則將會跳過往下執(zhí)行。

2.異常斷點

在斷點視圖中,有一個J!標(biāo)記按鈕!我們可以使用該按鈕來添加一個Java異常斷點。例如,我們想讓程序在遇到空指針異常(NullPointerException)時,仍然能繼續(xù)調(diào)試,那么我們可以使用該按鈕來添加一個異常斷點!

3.監(jiān)視點

這是一個非常好的功能,當(dāng)選定的屬性訪問或修改程序時,程序會停止執(zhí)行并允許進行調(diào)試。在Outline視圖中選擇一個類變量并從上下文菜單中選擇切換監(jiān)視點,屬性監(jiān)視點將會被創(chuàng)建,在斷點(Breakpoints)視圖中會把所有監(jiān)視點用列表的形式顯示出來。

4.評估/檢查

按Ctrl+Shift+D或者Ctrl+Shift+I來顯示選定變量或者表達式的值。我們也可以給一個變量或表達式添加永久觀察點,當(dāng)程序在調(diào)試時,這些觀察點就會在表達式視圖(Expression view)中顯示出來。

5.修改變量值

在調(diào)試過程中,我們可以修改變量值。先選好一個變量然后進入變量視圖(Variables view),根據(jù)變量類型在其對應(yīng)的Value列里輸入值即可。

6.在Main函數(shù)里面停止執(zhí)行

在運行/調(diào)試設(shè)置中,編輯配置對話框中有“Main”這個選項卡,我們可以勾選“Stop in main”這個復(fù)選框。如果選中,那么在調(diào)試一個基于main方法的Java程序時,程序會在main方法第一行位置便停止執(zhí)行。

7.環(huán)境變量

并不是在系統(tǒng)屬性中添加環(huán)境變量,我們可以在編輯配置對話框中很方便地進行添加。

8.Drop to Frame

這也是我最喜歡的一個功能。調(diào)試期間,可以重新跳到調(diào)用堆??蚣艿拈_始處執(zhí)行,并且變量值也會回到最初。根據(jù)回檔調(diào)整堆棧的深度,這個功能的主要用途是所有變量狀態(tài)可以快速回到方法開始執(zhí)行時候的樣子,然后你可以重新進行一遍一遍執(zhí)行,這樣就可以在你關(guān)注的地方進行多次調(diào)試,但是在執(zhí)行過程中也會產(chǎn)生一些副作用,比如插入到數(shù)據(jù)庫里面的數(shù)據(jù)是無法刪除的!

9.分布過濾

當(dāng)我們進入(F5)方法的時候,我們還可以訪問其外部庫(比如java.*),我們可能不需要這個庫,就可以在Perference選項卡頁面添加一個過濾器來排除這個包。

10.進入、跳出和返回

我把這個放在最后一點,在調(diào)試過程中,這些是必須要了解(最好掌握)的東西:

F5——進入:移動到下一個步驟,如果當(dāng)前行有一個方法調(diào)用,該控件將會跳轉(zhuǎn)到被調(diào)用方法的第一行執(zhí)行。

F6——跳出:移動到下一行。如果在當(dāng)前行有方法調(diào)用,那么會直接移動到下一行執(zhí)行。不會進入被調(diào)用方法體里面。

F7——返回:從當(dāng)前方法中跳出,繼續(xù)往下執(zhí)行。

F8——移動到下一個斷點處執(zhí)行。

相關(guān)文章

  • Java實現(xiàn)刪除排序鏈表中的重復(fù)元素的方法

    Java實現(xiàn)刪除排序鏈表中的重復(fù)元素的方法

    這篇文章主要介紹了Java實現(xiàn)刪除排序鏈表中的重復(fù)元素的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • MyBatisPlus查詢報錯Unknow?column?‘id‘?in?‘field?list‘解決分析

    MyBatisPlus查詢報錯Unknow?column?‘id‘?in?‘field?list‘解決分析

    這篇文章主要為大家介紹了MyBatisPlus查詢報錯Unknow?column?‘id‘?in?‘field?list‘解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Mybatis中${param}與#{param}的區(qū)別說明

    Mybatis中${param}與#{param}的區(qū)別說明

    這篇文章主要介紹了Mybatis中${param}與#{param}的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Spring框架接入單機Redis兩種實現(xiàn)方式解析

    Spring框架接入單機Redis兩種實現(xiàn)方式解析

    這篇文章主要介紹了Spring框架接入單機Redis兩種實現(xiàn)方式解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Java后端學(xué)習(xí)精華之TCP通信傳輸協(xié)議詳解

    Java后端學(xué)習(xí)精華之TCP通信傳輸協(xié)議詳解

    TCP/IP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,它會保證數(shù)據(jù)不丟包、不亂序。TCP全名是Transmission Control Protocol,它是位于網(wǎng)絡(luò)OSI模型中的第四層
    2021-09-09
  • Spring boot整合shiro+jwt實現(xiàn)前后端分離

    Spring boot整合shiro+jwt實現(xiàn)前后端分離

    這篇文章主要為大家詳細介紹了Spring boot整合shiro+jwt實現(xiàn)前后端分離,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Java實現(xiàn)導(dǎo)出合并Excel單元格

    Java實現(xiàn)導(dǎo)出合并Excel單元格

    隨著數(shù)據(jù)的不斷增長,很多時候需要將數(shù)據(jù)導(dǎo)出到Excel中進行分析、處理和展示。本文將介紹如何使用Java實現(xiàn)Excel導(dǎo)出,并且可以合并單元格,需要的可以參考一下
    2023-04-04
  • Java如何實現(xiàn)文件壓縮與上傳FTP

    Java如何實現(xiàn)文件壓縮與上傳FTP

    這篇文章主要介紹了Java如何實現(xiàn)文件壓縮與上傳FTP,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Springboot?配置SqlSessionFactory方式

    Springboot?配置SqlSessionFactory方式

    這篇文章主要介紹了Springboot?配置SqlSessionFactory方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 基于MapperXML掃描的問題

    基于MapperXML掃描的問題

    這篇文章主要介紹了MapperXML掃描的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論