无码人妻A片一区二区三区_18禁裸乳无遮挡啪啪无码免费_91精品亚?影视在线?看_人人妻人人爽人人澡AV_国产精品人妻一区二区三区四区_午夜免费影视

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 軟件研發(fā) > 加快Java調(diào)試的技巧有哪些?

加快Java調(diào)試的技巧有哪些?

2020-07-20 16:10:23 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

除了編寫高效的代碼外,掌握調(diào)試技巧也是Java程序員可以使他們的生活更輕松的最有用的事情之一。這在當(dāng)今的開發(fā)環(huán)境中尤其重要,在當(dāng)今的開發(fā)環(huán)境中,軟件世界越來(lái)越多地轉(zhuǎn)向分布式體系結(jié)構(gòu)和更多異步代碼。盡管不可避免地會(huì)出現(xiàn)軟件錯(cuò)誤,但發(fā)現(xiàn)并修復(fù)復(fù)雜的應(yīng)用程序構(gòu)建中的錯(cuò)誤變得越來(lái)越困難。當(dāng)我們轉(zhuǎn)向生產(chǎn)環(huán)境時(shí),調(diào)試過(guò)程會(huì)更加痛苦。不幸的是,沒有辦法解決-您必須調(diào)試。那么,Java開發(fā)人員如何才能找到軟件錯(cuò)誤的根本原因并更快地解決它們?這篇文章匯集了在開發(fā)和生產(chǎn)環(huán)境中調(diào)試Java應(yīng)用程序的一些最有效的技巧。

  充分利用斷點(diǎn)

讓我們從斷點(diǎn)開始- 斷點(diǎn)是一項(xiàng)顯而易見的重要功能,它為調(diào)試過(guò)程奠定了基礎(chǔ)。斷點(diǎn)使您可以暫停應(yīng)用程序的執(zhí)行,以便您可以分析程序的狀態(tài)并查找代碼行為異常的原因。

每個(gè)調(diào)試器都提供幾種類型的斷點(diǎn),包括條件斷點(diǎn),異常斷點(diǎn),監(jiān)視點(diǎn)和跟蹤點(diǎn)。

學(xué)習(xí)如何以及何時(shí)應(yīng)用不同類型的斷點(diǎn)可以使您的調(diào)試過(guò)程更加流暢。值得一提的是,一些現(xiàn)代工具支持不間斷的斷點(diǎn)。這些使您可以在代碼上放置斷點(diǎn)并收集調(diào)試數(shù)據(jù),而無(wú)需停止程序執(zhí)行。

這是Rookout Web IDE上的示例斷點(diǎn),該斷點(diǎn)設(shè)置在第41行。

  顯示邏輯結(jié)構(gòu)

通常在變量視圖中可用的“顯示邏輯結(jié)構(gòu)”功能在監(jiān)視代碼中Java類內(nèi)的內(nèi)容時(shí)非常有用。啟用此功能后,變量列表將顯示一個(gè)數(shù)組,該數(shù)組在調(diào)試的情況下更為有用。

這特別方便,如果您的代碼缺少對(duì)象的toString()方法。

這是快照的快照,顯示了調(diào)試透視圖的Eclipse IDE“變量視圖”上的功能。

變量視圖還允許您在調(diào)試期間直接修改變量的值。由于您不必使用更改后的輸入數(shù)據(jù)重新啟動(dòng)調(diào)試會(huì)話,因此可以節(jié)省大量時(shí)間。

  掌握在代碼庫(kù)中導(dǎo)航的技巧

每個(gè)Java調(diào)試器都提供許多功能,這些功能允許開發(fā)人員在調(diào)試時(shí)瀏覽其代碼的不同部分。其中一些包括逐行,跨步,跨步和逐行返回,可以安全地假設(shè)每個(gè)人都知道并使用它們。

除這些之外,請(qǐng)考慮合并以下內(nèi)容:

1.拖放到框架 -此功能用于跳回到堆棧框架中的某個(gè)點(diǎn)。如果您錯(cuò)過(guò)了某個(gè)時(shí)間點(diǎn)并需要回到過(guò)去,則只需使用逐幀顯示功能。

2.逐步篩選 -逐步篩選允許您在調(diào)試過(guò)程中跳過(guò)某些軟件包。當(dāng)您只需過(guò)濾掉不需要的類型時(shí),就不必瀏覽JDK系統(tǒng)的所有類。

為了提高瀏覽代碼的速度,您應(yīng)該掌握最重要的功能鍵的快捷方式。這些包括:

1.F5進(jìn)入

2.F6越過(guò)

3.F7步進(jìn)返回

4.F8運(yùn)行直到到達(dá)下一個(gè)斷點(diǎn)

盡管調(diào)試快捷方式可能因一個(gè)IDE的不同而有所不同,但記住它們將消除您不時(shí)使用鼠標(biāo)的需要。

  了解如何解決死鎖

形成循環(huán)依賴關(guān)系后,如果永久阻塞兩個(gè)或多個(gè)線程,則會(huì)發(fā)生死鎖情況,如下所示。

一組Java線程通常正在等待另一個(gè)線程擁有的資源,這種情況可能導(dǎo)致應(yīng)用程序完全停止。調(diào)試jstack死鎖可能非常具有挑戰(zhàn)性,因?yàn)樗鼈儾粫?huì)表現(xiàn)出諸如內(nèi)存,CPU或其他操作系統(tǒng)指標(biāo)突然增加的癥狀。

此外,它們往往表現(xiàn)在最惡劣的條件下,例如繁重的生產(chǎn)負(fù)載條件,這些條件很難復(fù)制。

解決jstack 死鎖情況有多種方法。首先,您可以在JVM集群中捕獲多個(gè)線程轉(zhuǎn)儲(chǔ),以推斷線程模式。在這種情況下,僅分析靜態(tài)線程轉(zhuǎn)儲(chǔ)可能是不夠的。

根據(jù)JVM集群的大小,您可能需要拖曳多個(gè)文件,這通常很費(fèi)力且費(fèi)時(shí)。

更好的方法是使用應(yīng)用程序監(jiān)視解決方案,該解決方案提供隔離線程死鎖所需的JV級(jí)和代碼級(jí)可見性。幸運(yùn)的是,有一些創(chuàng)新工具可以幫助您解決這一問題,包括一些現(xiàn)代的高級(jí)調(diào)試器以及商業(yè)化的APM工具。

使用這些工具來(lái)獲得對(duì)Java代碼的可視性并隔離錯(cuò)誤,可以減少本可以花費(fèi)在手動(dòng)分析和預(yù)后上的時(shí)間。

  利用生產(chǎn)調(diào)試器的力量

大多數(shù)開發(fā)人員通常遵循的典型調(diào)試流程包括復(fù)制環(huán)境,隔離錯(cuò)誤,然后應(yīng)用修復(fù)程序。

但是,這并非總是在每種生產(chǎn)環(huán)境中都可行。在這種情況下,開發(fā)人員可以依靠快速的生產(chǎn)調(diào)試器來(lái)獲得無(wú)縫的體驗(yàn)。

退出功能是一種功能強(qiáng)大的工具,可讓您從實(shí)時(shí)應(yīng)用程序中收集調(diào)試數(shù)據(jù),而無(wú)需更改應(yīng)用程序的狀態(tài)或流控制。

使用Rookout,您可以設(shè)置不間斷的斷點(diǎn)來(lái)獲取完整的堆棧跟蹤,捕獲實(shí)時(shí)變量或調(diào)試所需的任何其他應(yīng)用程序數(shù)據(jù)。

因此,與其使用高過(guò)載監(jiān)視解決方案進(jìn)行生產(chǎn)調(diào)試,不如使用Rookout之類的工具,這些工具可提供調(diào)試實(shí)時(shí)應(yīng)用程序所需的一切,而無(wú)需重新部署或編寫新代碼。

無(wú)論您是在無(wú)服務(wù)器應(yīng)用程序還是在容器化應(yīng)用程序上工作,Rookout都將是您調(diào)試庫(kù)中的絕佳選擇。

不要忘了遠(yuǎn)程調(diào)試

NetBeans,Eclipse,Intellij IDEA和Visual Studio等絕大多數(shù)頂級(jí)IDE支持遠(yuǎn)程調(diào)試,該技術(shù)允許您調(diào)試在另一臺(tái)計(jì)算機(jī)上運(yùn)行的Java代碼。

在目標(biāo)系統(tǒng)不支持本地調(diào)試的情況下,或者在缺乏足夠資源來(lái)運(yùn)行調(diào)試器的系統(tǒng)上,這尤其重要。

要執(zhí)行遠(yuǎn)程調(diào)試,必須提供調(diào)試器將用于連接到遠(yuǎn)程端口的配置詳細(xì)信息。例如,如果您使用的是Eclipse,則應(yīng)提供以下配置以成功啟動(dòng)遠(yuǎn)程調(diào)試會(huì)話。

對(duì)生產(chǎn)環(huán)境中的錯(cuò)誤進(jìn)行故障排除時(shí),遠(yuǎn)程調(diào)試也很方便,在這種情況下,開發(fā)人員需要連接到應(yīng)用程序并遠(yuǎn)程修復(fù)錯(cuò)誤。

最后,請(qǐng)記住,調(diào)試有時(shí)可能比實(shí)際實(shí)現(xiàn)花費(fèi)更多時(shí)間。在磨練Java調(diào)試技能時(shí),請(qǐng)始終努力編寫干凈,高效的代碼-在進(jìn)行調(diào)試時(shí)會(huì)有所收獲。

當(dāng)事情似乎失控時(shí),總是值得休息一下。錯(cuò)誤是編程難題,許多程序員已經(jīng)解決了這些難題,而又沒有靠近計(jì)算機(jī)。

使用以上策略可以減輕您的Java調(diào)試經(jīng)驗(yàn)。以上即是關(guān)于加快Java調(diào)試的技巧的全部?jī)?nèi)容介紹,想了解更多關(guān)于加快Java開發(fā)的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。

主站蜘蛛池模板: 午夜影院在线播放 | 国产日本精品视频 | 朋友的妈妈5在线观看 | 成全视频大全免费观看 | 新国产视频 | 逼特视频 | 35日本xxxxxxxxx25| 欧美伊人久久大香线蕉在观 | 人妻少妇乱子伦精品 | 国产成人精品无码片区 | caoporn超碰进入页面 | 精品国内二区三区 | 免费视频国产一区 | 天天天天爱天天躁 | 欧洲性片 | 九一免费版网站在线观看 | 欧美gogo | 高清不卡视频 | 有剧情的av | 看全黄大色黄大片美女人 | 毛片视频免费观看 | 1区2区3区4区产品乱码入口 | 亚洲精品福利片 | 乱淫的女高中调教h | 亚洲日本在线a | 亚精产品一区二区产品乱码 | 国产在线一二 | 亚洲精品综合在线 | 少妇被粗大的猛进出69影院 | 婷婷五月综合色视频 | 久久久久久久久久一区 | 色射综合 | 精品少妇一区二区三区日产乱码 | 国产99精品一区 | 麻豆果冻传媒2021精品 | 国产有码在线视频 | 国产成人精品免费视频网页大全 | 日韩黄毛片 | 欧美一级片 | 中文字幕人成无码人妻综合社区 | 亚洲AV成人无码无在线观看 |