<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          IDEA中的debug斷點調(diào)試技巧,學會真的香!

          共 2916字,需瀏覽 6分鐘

           ·

          2021-09-15 00:12

            Java大聯(lián)盟

            致力于最高效的Java學習

          關(guān)注



          B 站搜索:楠哥教你學Java

          獲取更多優(yōu)質(zhì)視頻教程


          大家好,我是楠哥,有很多小伙伴不太會用 IDEA 的 debug 調(diào)試,今天楠哥就安排一波,帶大家快速學會 IDEA 的 debug 調(diào)試技巧,保證你學完之后,代碼直接起飛,好了廢話不多說,直接上干貨。

          1、打斷點的基本操作

          開始 debug 之前,首先需要學會在代碼中打斷點,非常簡單,直接在代碼左側(cè)單擊鼠標左鍵即可。

          然后,啟動程序不能使用 run 的方式,而是要點擊 debug。

          看到如下狀態(tài)的時候,說明已經(jīng)進入了斷點。

          然后我們會在 IDEA 中看到這樣一個界面,有很多按鈕,接下來楠哥逐個給大家講解每個按鈕的作用。

          我們先說橫排的 8 個按鈕,我會按照橫 1、橫 2 這樣的命名方式來介紹。

          橫 1:從其他界面回到當前斷點界面光標處。

          橫 2:從斷點處開始,逐行執(zhí)行代碼,如果遇到方法,直接跳過。

          橫 3:從斷點處開始,逐行執(zhí)行代碼,如果遇到方法,會進入方法,但是只能進入自定義方法,不會進入官方類庫的方法。

          橫 4:從斷點處開始,逐行執(zhí)行代碼,如果遇到方法,會進入方法,適用于所有方法。

          橫 5:從當前斷點處回退,回到方法的調(diào)用處。

          橫 6:回退斷點,回到上一個斷點處,與橫 5 的區(qū)別在于,它會回到上一個方法的斷點中,而橫 5 只會回到上一個方法的調(diào)用處,并不會進入方法。

          橫 7:回到斷點光標處,與橫 1 的區(qū)別在于,它會繼續(xù)往后執(zhí)行一行代碼。

          橫 8:計算表達式,在 debug 模式中,可以直接輸入當前類中的任意一個方法,直接進行運算,輸出結(jié)果,如下圖所示。

          好了,介紹完橫排按鈕之后,接下來介紹豎排各個按鈕的作用。

          豎 1:重新運行程序,進入 debug 模式。

          豎 2:執(zhí)行程序,但不是逐行執(zhí)行,而是跳轉(zhuǎn)到下一個斷點處。

          豎 3:暫停斷點,這個基本用不到。

          豎 4:終止程序的運行。

          豎 5:顯示所有斷點,如下圖所示。

          豎 6:讓所有斷點失效,debug 不再進入斷點,要恢復斷點,再次點擊此按鈕即可。


          2、實際開發(fā)斷點技巧

          通過上面的步驟,想必大家已經(jīng)學會了如何打斷點,那么接下來楠哥再給大家介紹幾種實際開發(fā)中常用的斷點調(diào)試技巧,學會之后,寫代碼簡直不要太香。

          1、設(shè)置斷點條件

          可以手動設(shè)置進入斷點的條件,比如代碼如下所示。

          for (int i = 0; i < 100; i++) {
             System.out.println(i);
          }
          如果我們在這個循環(huán)中打斷點,那么每次執(zhí)行循環(huán)都會進入斷點,我們可以通過設(shè)置斷點條件來控制是否進入斷點,比如只需要在 i = 10 的時候進入斷點,則可以在斷點處右鍵,在彈出的對話框的 Condition 中輸入條件,如下所示。

          再次執(zhí)行程序,可以看到 i == 10 的時候進入斷點。


          2、動態(tài)修改變量的值

          在 debug 模式中,可以手動修改程序中變量的值,比如代碼如下所示。

          public static void test3(){
             int add = add(12);
             System.out.println(add);
          }

          public static int add(int i,int j){
             return i+j;
          }
          變量 add 的值應該是 3,我們可以手動修改它的值,在控制臺的 Variables 中選擇 Set Value,具體操作如下所示。

          然后繼續(xù)執(zhí)行代碼,可以看到控制臺輸出的就是 6。

          當然,這只是臨時的修改,下一次程序運行,結(jié)果仍然是 3。


          3、多線程斷點調(diào)試

          在多線程的情況下,我們可以對線程的執(zhí)行順序進行控制,比如代碼如下所示。

          new Thread(()->{
             System.out.println("線程1-1");
             System.out.println("線程1-2");
             System.out.println("線程1-3");
          }).start();

          new Thread(()->{
             System.out.println("線程2-1");
             System.out.println("線程2-2");
             System.out.println("線程2-3");
          }).start();
          運行結(jié)果如下圖所示。

          如果我們希望按照 線程1-1,線程2-1,線程1-2,線程2-2,線程1-3,線程2-3 的順序輸出,可以通過設(shè)置斷點執(zhí)行順序來實現(xiàn),具體操作如下所示。

          先在兩個線程代碼中打斷點,然后在斷點處右鍵,設(shè)置為 Thread,如下圖所示。

          接下來執(zhí)行程序,進入斷點的時候,通過切換當前線程來實現(xiàn)交替執(zhí)行,比如第一次執(zhí)行為 Thread-0,那么接下來就切換到 Thread-1 執(zhí)行,然后再切換到 Thread-0 來執(zhí)行,如下圖所示。


          這樣反復切換執(zhí)行完畢之后,運行結(jié)果如下圖所示。


          4、同時運行多個服務。

          我們在做分布式開發(fā)的時候,同一個項目往往同時要啟動調(diào)試多個服務實例,但是當我們第二次啟動服務的時候,會彈出如下界面,意思是需要停止當前服務,才能重新啟動第二個。

          這個問題我們只需要做一個簡單的配置就能解決,選擇 Edit Configurations。

          在彈出的窗口中勾選 Allow parallel run 即可,這樣就可以同時啟動多個服務了。

          好了,以上就是關(guān)于 IDEA 中斷點調(diào)試的使用,你可能覺得這種具體操作看文章不是特別直觀,沒關(guān)系,楠哥專門錄制了視頻教程,保證你看完之后,立馬清清楚楚,視頻已經(jīng)上傳到 B 站了,掃描下方二維碼或者點擊文末【閱讀原文】,即可直達 B 站!



          推薦閱讀

          1、Spring Boot+Vue項目實戰(zhàn)

          2、B站:4小時上手MyBatis Plus

          3、一文搞懂前后端分離

          4、快速上手Spring Boot+Vue前后端分離


          楠哥簡介

          資深 Java 工程師,微信號 southwindss

          《Java零基礎(chǔ)實戰(zhàn)》一書作者

          騰訊課程官方 Java 面試官今日頭條認證大V

          GitChat認證作者,B站認證UP主(楠哥教你學Java)

          致力于幫助萬千 Java 學習者持續(xù)成長。




          有收獲,就在看 
          瀏覽 97
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黑人操亚州人 | 欧美激情操逼片 | 日逼免费观看网站 | 欧美成人性爱免费 | 亚洲九九九九九 |