国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Intellij IDEA的一些調(diào)試技巧(小結(jié))

Intellij IDEA的一些調(diào)試技巧(小結(jié))

2021-02-20 11:55V Java教程

本篇文章主要介紹了Intellij IDEA的一些調(diào)試技巧(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

程序員的工作內(nèi)容,除了大部分時間寫代碼之外,因為有不少的時間是用在調(diào)試代碼上。甚至說不是在調(diào)試代碼,就是即將調(diào)試代碼。 :)

今天我們來談談調(diào)試代碼的一些技巧,在使用ide提供的debugger時一些快速定位問題的方式。

看到這里的朋友,不要馬上認為我標題黨,再往下看看,如果你還有一些更好用的技巧,歡迎留言。

下面進入正題。

1 多線程調(diào)試

開發(fā)過多線程應用的朋友應該有體會,有些時候,為了觀察多個線程間變量的不同狀態(tài),以及鎖的獲取等,就會想到在代碼里加個斷點debug一下。

在ide里斷點停下來的時候,可以切換到另外的線程中,跑其他的代碼,不會互相影響。當然,這里是有個開關(guān)的,在eclipse里默認開啟,

但是在intellij idea里默認是沒有開啟的。也就是說如果你在idea里代碼里加斷點,雖然一個線程的斷了下來,但其他線程的已經(jīng)執(zhí)行過了。

此處把線程的suspend設置成和eclipse模式一樣之后,也可以開始多線程應用的調(diào)試。

簡單設置可以直接在斷點處,將suspend改成thread

Intellij IDEA的一些調(diào)試技巧(小結(jié))

更改idea中的默認設置:切換到"thread" radio button,點擊出現(xiàn)的按鈕 ”make default"

Intellij IDEA的一些調(diào)試技巧(小結(jié))

一個線程斷下來之后,可以通過在線程窗口切換,到其它線程中繼續(xù)運行。

intellij idea里在這兒切換

Intellij IDEA的一些調(diào)試技巧(小結(jié))

我們看到main線程和pool-1-thread-1這兩個線程都處于running狀態(tài),切換到任何一個都可以繼續(xù)運行。

此時,就可以寫一個多線程的應用,同時向arrylist這一類非線程安全的容器中存放內(nèi)容,然后觀察為什么他們是線程不安全的,會出現(xiàn)什么問題,生動又形象。

ps: 這里順道說一下,這就是為什么創(chuàng)建線程時建議起一個有意義的名字 ,至少是可以識別的名字,否則在這里都不能區(qū)分出哪個是自己的線程,想切換還麻煩。

2 后退執(zhí)行

這里所說的后退執(zhí)行,是有些時候我們在debug代碼時,懶的每個方法都進入單步調(diào)試,就會出現(xiàn)你觀察一個變量值的變化時,某個方法沒跟進去,結(jié)果值就變了,不得不重來一次。

依靠后退執(zhí)行的功能,可以后退,就像下棋時悔棋那種功能一樣。當然,這個后退操作的名字是我自己起的,在ide里被稱為drop frame。

Intellij IDEA的一些調(diào)試技巧(小結(jié))

有了這個功能,我們在drop 了當前這個frame之后,已經(jīng)改變的變量值不會恢復。比如你向當前調(diào)用方法里傳入了一個list,并且在方法中向list里添加了內(nèi)容,那在drop到調(diào)用該方法的地方時,list不會恢復到之前的狀態(tài)。

但是在該方法再次被調(diào)用時,你可以觀察list什么時候被改變的,至少不需要再重跑一遍程序了。甚至你可以一言不合就后退。

3 條件斷點

為了調(diào)試代碼,就需要在要觀察變更的地方添加斷點,然后小心翼翼的一步步執(zhí)行。

但是如果是在一個循環(huán)里,又或者該方法會被多線程同時調(diào)用到的時候,你小心的向下單步調(diào)試,發(fā)現(xiàn)沒有你關(guān)心的內(nèi)容,又從循環(huán)開始處跑下來,還是沒你的內(nèi)容,人就開始煩燥起來。

其實,在添加斷點的時候,我們可以為斷點增加一定的條件,這樣,在指定的條件滿足時,斷點才會生效。

intellij idea內(nèi),在斷點上右擊,會彈出如下圖的條件框,輸入指定的條件即可。

Intellij IDEA的一些調(diào)試技巧(小結(jié))

有了條件斷點,不相關(guān),不感興趣的代碼就可以直接跳過了。

4 片斷代碼

這個沒想好用什么名字來表述。有些時候在調(diào)試過程中,忽然想招待一段與此相關(guān),但不在源文件中的代碼來觀察一下,輔助進行問題分析。此時你會停止程序,添加代碼然后重新跑一次嗎?

在idea里有一個執(zhí)行代碼片斷的功能,可以在當前代碼的上下文內(nèi),執(zhí)行你臨時寫的代碼。

例如,當前方法傳入一個list,但這個方法里少一個你后面條件需要使用到的元素,此時你可以臨時使用片斷代碼執(zhí)行的功能,添加一個進去。

注意,在intellij idea里,這個上面紅框,像個小計算器的按鈕就是臨時執(zhí)行的功能,點擊之后,會彈出按鈕下方這個evaluate expression(ctrl+f8)的框,輸入代碼,點擊右下角的evalute即可。返回值會顯示在result處。

Intellij IDEA的一些調(diào)試技巧(小結(jié))

這就就相當于臨時改變了變量內(nèi)容。

然后,還可以調(diào)用對象的方法,執(zhí)行功能,獲取屬性值等。

Intellij IDEA的一些調(diào)試技巧(小結(jié))

5 查看變量修改值

每個ide在調(diào)試代碼時都提供了一個觀察當前上下文變量值的窗口。其實除了查看之外,一些非final的基本類型,還可以直接在此處修改值。這樣如果多次循環(huán)執(zhí)行時,每次可以恢復到期望的值,不需要重啟程序。

Intellij IDEA的一些調(diào)試技巧(小結(jié))

常用代碼自動補全快捷鍵

 

快捷鍵 說明
sout system.out.println(“”);
psvm main方法

 

常用設置項

常用快捷鍵

 

快捷鍵 說明
alt + ctrl + s 打開settings
alt + ctrl + shift + s 打開project structrue
alt + enter 快速修復
alt + / 單詞自動補全
alt + insert 代碼自動生成,比如setter、getter、tostring等等
alt + shift + v 把類中成員移動到另一個類
ctrl + shift + f 格式化代碼
ctrl + shift + u 大小寫切換
ctrl + shift + i 根據(jù)當前上下文顯示代碼定義,比如:光標停在方法上就會以popupview方式顯示該方法的定義
ctrl + click 跳到源碼
shift + shift 搜索所有文件
ctrl + e 打開最近訪問文件列表

 

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/softidea/p/7245884.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品1| 国产中文 | 国产精品污www在线观看 | 综合久久综合 | 毛片久久久| 亚洲国产欧美日韩 | 国产欧美日韩一区二区三区 | 国产一级黄 | 亚洲www视频 | 日本末发育嫩小xxxx | 色在线免费 | 91精品久久久久久久久久 | 91在线高清视频 | 欧美一区2区三区4区公司二百 | 欧美 日韩 国产 一区 | 亚洲精品成人18久久久久 | 久久99精品久久久久久久青青日本 | 欧美一区日韩一区 | 久久99精品国产99久久6尤 | 国产三级精品在线 | 欧美日韩精品久久久 | 日韩精品一二三区 | 国产欧美在线观看 | 永久免费看黄网站 | 中文字幕在线免费看 | 精品国产乱码久久久久久1区2区 | 久久99精品国产麻豆婷婷洗澡 | 中文字幕日韩视频 | 日韩欧美在线观看视频 | 欧美午夜精品久久久久久蜜 | 懂色一区二区三区av片 | 91 在线| 久久国产精品久久 | 欧美久久久久 | 青青草国产 | 国产精品观看 | 亚洲国产精品一区二区三区 | 黄色片免费观看网站 | 亚洲精品国产一区 | 国产黄色小视频 | 欧美不卡视频 |