工欲善其事,必先利其器。在Java開發中挑選一款好的Ide環境能大大提升我們的開發效率,IntelliJ IDEA正是一個不二選擇。本指南中會介紹怎么對idea進行配置、使用idea進行debug和經常使用的快捷鍵,最后會推薦幾個牛逼的idea插件,大大提升開發體驗和效率。本文的內容基於Windows系統,關於Mac的內容請參考本篇博客
PS:本文部分內容來自網絡,根據自己的習慣進行了編輯整理,方便自己查閱記憶。
1. 搭建idea的開發環境
在使用一個ide前,我們必須要對其進行配置以符合我們的開發需要。這個章節會介紹當我們安裝好IntelliJ IDEA之后怎么對其進行必要的配置。
首先我們要去官網下載idea的安裝包,記住一定要下載Ultimate收費版,因為收費版本比Community的免費版本多了很多功能,這些功能可以大大提升我們的開發效率。下載完成后需要自己安裝激活。(關於怎么激活自己去百度下)
1.1 樣式主題配置
第一次安裝完IDEA之后,第一步往往需要設置一個合適自己的樣式主題,這部分配置主要包括:
- 整體的主題配置;
- 菜單欄字體大小樣式配置;
- 代碼區字體大小樣式配置;
- 輸出控制台字體大小樣式配置。
1. 主題和菜單欄配置
如上圖,File>>Settings>>Appearance&Behavior>>Appearance,進入主題設置頁面。選擇我們喜歡的主題,這邊我選擇了我喜歡的Darcual主題,這個可以根據個人愛好自己選擇。然后圖中"override default fonts by"這欄,我一般會選擇"微軟雅黑",字體大小自己選擇。注意,這個配置只會影響主題和最上面菜單欄的顯示。
2. 代碼區字體大小樣式配置
如上圖,進入Color Scheme Font標簽頁進行代碼編輯區的字體樣式設置。
3. 輸出控制台字體大小樣式配置
1.2 設置編碼字符集
1.3 配置JDK
1. 項目編譯的JDK版本
如上圖,上面的設置是配置編譯出來的class文件的jdk版本是哪個,這邊我們選擇的是1.8版本。想要查看class文件的jdk版本,我們可以將class文件用編輯軟件打開,以16進制的形式查看。
cafe babe 0000 0034 0026 0a00 0600 1809
0019 001a 0800 1b0a 001c 001d 0700 1e07
001f 0100 063c 696e 6974 3e01 0003 2829
5601 0004 436f 6465 0100 0f4c 696e 654e
756d 6265 7254 6162 6c65 0100 124c 6f63
"cafe babe"是每個class文件固定的,后面的"0000 0034"就標明了class文件的jdk版本。其中0034代表的就是jdk1.8版本。下面是對照表:
版本號 | JDK版本 |
---|---|
2E | jdk1.2 |
2F | jdk1.3 |
30 | jdk1.4 |
31 | jdk1.5 |
32 | jdk1.6 |
33 | jdk1.7 |
34 | jdk1.8 |
2. 配置Project的Jdk版本
項目的SDK默認會被項目中的每個module使用,當然我們也可以為每個module配置專有的SDK類型和版本。
3. 配置每個module依賴的JDK版本
每個module會默認使用project配置的jdk版本,當然我們也可以自己指定。
4. 檢查平台的JDK版本(也就是你電腦上安裝的JDK)
我們在給project創建jdk的時候其實用的就是這個jdk。
1.4 鍵盤習慣配置
如果你之前用慣的是Eclipse,可能用不慣IDEA的快捷鍵.沒事,idea可以將快捷鍵設置為eclipse模式。你之前用的是windows電腦,現在轉為mac了,idea也提供了相應的轉換設置。
通過keyman標簽還可以設置快捷鍵,但是個人不建議改變IDEA默認的快捷鍵設置。
1.5 配置資源分類
1.6 構建工具配置
常用的構建工具有Maven和Gradle。我們可以選其一。
1.7 配置Tomcat
1.8 一次只能打開一個文件(關閉Tab)
1.9 自動編譯配置
具體步驟:頂部工具欄 File ->Other Settings -> Default Settings -> Auto Import
說明:開啟自動編譯之后,結合Ctrl+Shift+F9 會有熱更新效果。
具體步驟: 敲擊 Ctrl + Shift + Alt + / 然后雙擊Shift搜索進入Registry ,找到compiler.automake.allow.when.app.running ,然后勾選上。
2. 調試技巧
2.1 查看變量並修改值
每個IDE在調試代碼時都提供了一個觀察當前上下文變量值的窗口。其實除了查看之外,一些非final的基本類型,還可以直接在此處修改值。這樣可以直接將值修改成我們期望的值直接調試我們想測試的情形。
2.2 表達式計算功能
這個功能可以在當前代碼的上下文內,執行你臨時寫的代碼來驗證你的猜想,而不用再寫代碼去驗證。或者可以臨時改變某些變量,讓代碼朝着自己期望的方向執行。
例如,當前方法傳入一個List,但這個方法里少一個你后面條件需要使用到的元素,此時你可以臨時使用片斷代碼執行的功能,添加一個進去。
2.3 條件斷點
為了調試代碼,就需要在要觀察變更的地方添加斷點,然后小心翼翼的一步步執行。但是如果是在一個循環里,又或者該方法會被多線程同時調用到的時候,你小心的向下單步調試,發現沒有你關心的內容,又從循環開始處跑下來,還是沒你的內容,人就開始煩燥起來。
其實,在添加斷點的時候,我們可以為斷點增加一定的條件,這樣,在指定的條件滿足時,斷點才會生效。IntelliJ IDEA內,在斷點上右擊,會彈出如下圖的條件框,輸入指定的條件即可。
2.4 后退執行
這里所說的后退執行,是有些時候我們在debug代碼時,懶的每個方法都進入單步調試,就會出現你觀察一個變量值的變化時,某個方法沒跟進去,結果值就變了,不得不重來一次。依靠后退執行的功能,可以后退,就像下棋時悔棋那種功能一樣。當然,這個后退招待的名字是我自己起的,在IDE里被稱為Drop Frame。
注意,drop frame雖然可以回退方法,但是被這個方法改變值的變量是不能回退到原來的值的。
2.5 多線程調試
開發過多線程應用的朋友應該有體會,有些時候,為了觀察多個線程間變量的不同狀態,以及鎖的獲取等,就會想到在代碼里加個斷點debug一下。在IDE里斷點停下來的時候,可以切換到另外的線程中,跑其他的代碼,不會互相影響。在IDEA是有這個功能的:
在斷點上面右擊,在Suspend標簽上選擇"Thread"選項,這樣當一個線程到達斷點時就不會影響其他線程,其他線程還會繼續執行。如果你選擇"ALL"選項,那么當一個線程執行到斷點時,其他線程都會被掛起進入SLEEPING狀態。
3. 常用快捷鍵(小技巧)
IntelliJ IDEA 於 2001 年 1 月誕生,並在 3.0 版本之后屢次獲得各類大獎,從而奠定了它在 IDEA 中地位。而IDEA的快捷鍵能大大提升我們的開發效率和編程體驗,讓開發者為之着迷。
3.1 搜索相關
- alt+F7(右鍵“find usage”)/ctr+鼠標左擊:查找當前類、方法和變量在哪些地方使用過;
- ctrl+N: 查找類;
- ctrl+N+:行號(比如String:10 指跳轉到String類的第10行 )
- ctrl+F/alt+f3:在當前編輯的文檔中查找;
- ctrl+shitf+F :在所有文件中查找;
- ctrl+shift+N :查找文件;
- double shift:search everywhere;
- search struct:按照模板搜索代碼。
3.2 代碼編輯相關
- alt+insert:插入構造函數,setter/getter方法;
- ctrl+alt+space :自動補全代碼;
- ctrl+shift+enter:補全代碼
- ctrl+/ :代碼注釋;
- ctrl+shirt+/ : 代碼注釋;
- ctrl+X:剪切行;
- ctrl+D:賦值行;
- ctrl+W:智能選中相關代碼;
- ctrl+alt+t : 選中代碼塊 可以添加try catch if-else塊
- ctrl+J :提示縮寫
- alt+J: 逐個選中並高亮一個變量
- shift+F6: rename變量和方法等;
- ctrl+P:顯示一個方法的參數情況
- ctrl+O :重載一個父類或接口的方法
- alt+1 -->ctrl+shift+> : 首先alt+1定位project,然后再調整分割線
- F11:添加書簽,收藏關鍵業務代碼
- shift+F11:顯示書簽
- ctrl+enter:重命名書簽
- ctrl+z/ctrl+shift+z
- ctrl+shift+f7結合f3:ctrl+shift+f7可以高亮某個變量,而且隨着鼠標的移動,這個高亮是不會消失的(這個很重要)。然后使用f3找到下一個使用該變量的地方。
- ctrl+shift+. 折疊代碼塊,ctrl++號;還原代碼塊;
- CTRL+SHIFT+F7:把光標放在某個元素中,按下快捷鍵之后,IDE將高亮顯示所選元素所有出現過的地方。
3.3 導航相關
- ctrl+反點號 : 基礎設置;
- Ctrl+Shift+V :使用最近復制過的文本;
- ctrl+tab :歷史tab導航;
- ctrl+E :最近瀏覽過的文件;
- ctrl+shift+e :最近編輯過的文件;
- ctrl + F12 :列舉類的成員變量和方法;
- ctrl + H : 查看類的繼承關系
- Ctrl+Shift+Backspace(Go to | Last Edit Location)讓你調轉到代碼中所做改變的最后一個地方,多按幾次Ctrl-Shift-Backspace查看更深的修改歷史;
- ctrl+alt+< / ctrl+alt+> : 可以在前兩次操作之間切換,有點像瀏覽器的前進后退功能
- Ctrl-Alt-Down/Ctrl-Alt-Up快捷鍵則可以在編譯器錯誤信息或者查找操作結果間跳轉;
- ESC :將焦點移到編輯器窗口
- shift+esc :將焦點移動到編輯器窗口,並且關閉工具窗口
- F12 打開上次使用的工具窗口
- alt+home:瀏覽導航欄;
- ctrl+]或者ctrl+[:括號匹配:這個也非常有用,因為代碼太長,某個for循環,可能已經撐滿整個屏幕了。這個時候,找到某個大括號對應的另外一邊就很費勁。你可以將光標定位在某個大括號一邊,然后使用ctrl+]或者ctrl+[來回定位即可。
這邊貼上一個自己畫的思維導圖:
4. 插件推薦
- 阿里巴巴規約插件;
- Key promoter(快捷鍵提示);
- jrebel(熱部署);
- findbugs(幫助尋找代碼可能潛在的bug);
- grep console;
- .ignore(生成各種ignore文件);
- lombok(支持各種注解,省略代碼);
- GsonFormat(一鍵根據json文本生成java類);
- Maven Helper;
- VisualVM Launcher;(jvm調優必備工具);
- MyBatisCodeHelperPro(mybatis代碼自動生成插件);
- Rainbow Brackets(彩虹顏色的括號,代碼看起來比較舒服);
- Translation(翻譯插件);
- String Manipulation(提供強大的文本轉換操作);
- Nyan progress bar(裝逼進度條);
- Background Image Plus(背景圖插件);
- activate-power-mode OR Power mode II(字節跳動插件);
- JUnitGenerator(單元測試生成工具);
- SequenceDiagram(時序圖生成工具);
- PlantUML(畫UML圖)
- ledis(Redis可視化工具);
- easyCode
激活碼
最后再送上2019版的激活碼一枚,希望還能使用
BD5ZD4E3AF-eyJsaWNlbnNlSWQiOiJCRDVaRDRFM0FGIiwibGljZW5zZWVOYW1lIjoi6LaF57qnIOeggeWGnCIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjAyMC0wMS0xMSIsInBhaWRVcFRvIjoiMjAyMS0wMS0xMCJ9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMC0wMS0xMSIsInBhaWRVcFRvIjoiMjAyMS0wMS0xMCJ9LHsiY29kZSI6IkRQTiIsImZhbGxiYWNrRGF0ZSI6IjIwMjAtMDEtMTEiLCJwYWlkVXBUbyI6IjIwMjEtMDEtMTAifSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjAtMDEtMTEiLCJwYWlkVXBUbyI6IjIwMjEtMDEtMTAifSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwMjAtMDEtMTEiLCJwYWlkVXBUbyI6IjIwMjEtMDEtMTAifSx7ImNvZGUiOiJETSIsImZhbGxiYWNrRGF0ZSI6IjIwMjAtMDEtMTEiLCJwYWlkVXBUbyI6IjIwMjEtMDEtMTAifSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwMjAtMDEtMTEiLCJwYWlkVXBUbyI6IjIwMjEtMDEtMTAifSx7ImNvZGUiOiJSUzAiLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiUkMiLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiUkQiLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiUEMiLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiUk0iLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiV1MiLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiREMiLCJmYWxsYmFja0RhdGUiOiIyMDIwLTAxLTExIiwicGFpZFVwVG8iOiIyMDIxLTAxLTEwIn0seyJjb2RlIjoiUlNVIiwiZmFsbGJhY2tEYXRlIjoiMjAyMC0wMS0xMSIsInBhaWRVcFRvIjoiMjAyMS0wMS0xMCJ9XSwiaGFzaCI6IjE2MTk3NDMzLzAiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-liVAawRCeXH2Shafc0LGqqv5zXYwYALU3UPFoy0znea0oPLMQuc8n5lnoI8ACa7nZqgywJlvf6Ta0GpbguLlObE1NosSqQGS5c9ZPOVA1+TBHtDLiia2FnKjMzpIAUjFfmiD5kxboB4AI2VBF6q60UCyyoHQaiQ3zH0TYyR25sRDioYVz5yREJzvb22vaArIQQp4lTGwQJWoBB6vn3o94VOI7efXW2j4VWH3Qj+zxmwqzJXdtNMBxAm3E5NCscd9XT5DLt9yyRwBD5lfF91jRxgNal0FtPfMdHrhaT4cXaYHK49IDNeWTGX+U//9n5hc75x7ALVnuDh1kPfTul0xIQ==-MIIElTCCAn2gAwIBAgIBCTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE4MTEwMTEyMjk0NloXDTIwMTEwMjEyMjk0NlowaDELMAkGA1UEBhMCQ1oxDjAMBgNVBAgMBU51c2xlMQ8wDQYDVQQHDAZQcmFndWUxGTAXBgNVBAoMEEpldEJyYWlucyBzLnIuby4xHTAbBgNVBAMMFHByb2QzeS1mcm9tLTIwMTgxMTAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQAF8uc+YJOHHwOFcPzmbjcxNDuGoOUIP+2h1R75Lecswb7ru2LWWSUMtXVKQzChLNPn/72W0k+oI056tgiwuG7M49LXp4zQVlQnFmWU1wwGvVhq5R63Rpjx1zjGUhcXgayu7+9zMUW596Lbomsg8qVve6euqsrFicYkIIuUu4zYPndJwfe0YkS5nY72SHnNdbPhEnN8wcB2Kz+OIG0lih3yz5EqFhld03bGp222ZQCIghCTVL6QBNadGsiN/lWLl4JdR3lJkZzlpFdiHijoVRdWeSWqM4y0t23c92HXKrgppoSV18XMxrWVdoSM3nuMHwxGhFyde05OdDtLpCv+jlWf5REAHHA201pAU6bJSZINyHDUTB+Beo28rRXSwSh3OUIvYwKNVeoBY+KwOJ7WnuTCUq1meE6GkKc4D/cXmgpOyW/1SmBz3XjVIi/zprZ0zf3qH5mkphtg6ksjKgKjmx1cXfZAAX6wcDBNaCL+Ortep1Dh8xDUbqbBVNBL4jbiL3i3xsfNiyJgaZ5sX7i8tmStEpLbPwvHcByuf59qJhV/bZOl8KqJBETCDJcY6O2aqhTUy+9x93ThKs1GKrRPePrWPluud7ttlgtRveit/pcBrnQcXOl1rHq7ByB8CFAxNotRUYL9IF5n3wJOgkPojMy6jetQA5Ogc8Sm7RG6vg1yow==