import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("張三");
list.add("李四");
list.add("王五");
String result = getResult(list);
System.out.println(result);
}
public static String getResult (List<String> list){
if (list == null|| list.size() == 0){
return null;
}
StringBuilder sb = new StringBuilder();
for(String s : list){
sb.append(s).append(" ");
}
String result = sb.toString();
return result.substring(0,result.length()-1);
}
}
先編寫一個這樣的程序。
快捷鍵
Alt+F8是添加斷點 Ctrl + D 是快速復制一行
小蟲子---即是Debug
點下小蟲子就可以單步運行。
每次按F8,從斷點一行一行地執行程序,直到運行結束。
resume
直接從當前斷點跳到下一斷點。
查看所有斷點
禁止所有斷點:
在調試的過程中,不知道哪個斷點有問題。某行代碼有bug,想跳過所有的斷點,
點擊之后斷點從紅色變成灰白色,按F9之后所有的斷點都跳過去,不會停下
條件斷點
假設在這打斷點,需要字符串s滿足內容為張三才進行斷點
Ctrl + Shift + F8
就會出來一個條件窗口
輸入java表達式
字符串s滿足內容為張三才進行斷點
設置了之后,滿足條件會停留,
list.add("張三"); 停留一次,其他都沒有停留。若把條件斷點去掉,則都會停留。
表達式求值:
在調試斷點的過程中,在斷點處要查看某一個值計算之后是什么結果
啟動debug后,選中list。然后 Alt + F8
再按回車
就能看到當前list里的值
運行到指定行:
Alt + F9 從斷點運行到指定行。
setValue:設置值
String result = getResult(list);
按F2 將list填上null
來測試
if (list == null|| list.size() == 0){
return null;
}
這段函數的輸出是否一致
斷點回退
回退到上一個方法調用的開始處,在IDEA里測試無法一行一行地回退或回到到上一個斷點處,而是回到上一個方法
回退的方式有兩種,一種是Drop Frame按鈕
第二種方式,在調用棧方法上選擇要回退的方法,右鍵選擇Drop Frame
,回退到該方法的上一個方法調用處,此時再按F9(Resume Program),可以看到程序進入到該方法的斷點處了。
但有一點需要注意,斷點回退只能重新走一下流程,之前的某些參數/數據的狀態已經改變了的是無法回退到之前的狀態的,如對象、集合、更新了數據庫數據等等。
歡迎大家關注我的微信公眾號,獲取你不知道的寶藏。