### 一、視圖查看
>[info] Ctrl+F12 查看file,method結構圖、類繼承機構圖
(不知道方法結構,Ctrl+F12一下,方法,參數,返回值,一清二楚的展現出來)
>[info] Ctrl+shift+Alt+U ? 查看maven依賴,類圖
使用maven做項目時,依賴往往非常多,在配置依賴的文件中只需要Ctrl+shift+Alt+U,所有依賴都以拓撲圖的方式展現出來,所有的關系和位置都能找到;
如下圖(抱歉,項目依賴太多,具體的依賴需要放大)

類圖:我們閱讀源碼的時候,想知道各個類之間的關系怎么辦,Ctrl+shift+Alt+U,所有依賴都以拓撲圖的方式展現出來,所有的關系和位置都能找到,以ArrayList為例:

>[info]Ctrl+Alt+H ? 查看方法調用層次;
### 二、定位
>[info] **1.項目之間的跳轉**
Ctrl+Alt+\[ 跳轉到下一個項目
Ctrl+Alt+\] 跳轉到上一個項目
>[success]** 2.文件之間的跳轉**
Ctrl+E 定位到最近瀏覽過的文件?
Ctrl+Shift+E 最近更改的文件
Shift+Click 可以關閉文件
>[warning]3.**位置的跳轉**
Ctrl+Shift+Backspace 跳轉上一次修改的地方
Ctrl+Alt+B 跳轉到方法實現處
Ctrl+Shift+左箭頭 上一個瀏覽的地方
Ctrl+Shift+右箭頭 下一個瀏覽的地方
>[danger] **4.其他的跳轉**
Ctrl+H 顯示類結構圖(類的繼承層次)
Ctrl+Q 顯示注釋文檔
Alt+1 快速打開或隱藏工程面板
Alt+left/right 切換代碼視圖
F2 或 Shift+F2 高亮錯誤或警告快速定位
Tab 代碼標簽輸入完成后,按 Tab,生成代碼
Ctrl+Shift+F7 高亮顯示所有該文本,按 Esc 高亮消失
>[info] **5.搜索**
Ctrl+N 快速搜索類
Ctrl+Shift+N 快速搜索文件
Ctrl+Alt+Shift+N 快速搜索函數
?三個里面都有Include non-porjecct items選項,勾選則表示非當前文件中的jar里面所有的類也會被查找;

Ctrl+Shift+F 快速搜索字符串

?Alt+F1 查找代碼所在位置
Alt+F3 逐個往下查找相同文本,并高亮顯示
>[success] **6.光標移動和選中**
Ctrl+Alt+Shift+J 選中所有相應的目標
Alt+Up/Down 在方法間快速移動定位
Ctrl+Shift+Up/Down 向上/下移動語句
*Ctrl+Up/Down 光標中轉到第一行或最后一行下*
***Ctrl+B/Ctrl+Click 快速打開光標處的類或方法(跳轉到定義處)***
### 三、Alt+Enter
雖然只用一個組合按鍵,但是它的作用非常大
>[info]1.提供代碼提示

代碼報錯只要alt+Enter一下,他就為我們提供了好了解決方案;
>[success]2.自動創建函數
?
只要寫好函數名稱,Alt+Enter一下,它就能幫我們自動創建好函數;
>[warning]3.list replace
寫完一個list用for遍歷;Alt+Enter一下,他就告訴你還有更好的重構方法:

回車它就能幫你重構好;
>[danger]4.實現接口
當我們需要實現接口的時候,只需要在接口的名稱上Alt+Enter就能做到

>[info]5.單詞拼寫
程序員好多都英語不好,Alt+Enter簡直是他們的福音;
當我們拿不準一個單詞拼寫對不對的時候不放,Alt+Enter一下。

回車以后它能把相似的單詞都列出來,

我們只需要找到對的那個就ok,是不是很好用。
>[succsse]6.導包
當你需要使用某個包時,只需要把光標移動到想導包的名稱上,Alt+Enter導入完成;
### 四、live Templates(模板)
>這是定義了大量的模板,只用敲出小小的幾個字母提示,就可以回車使用模板生成大量的代碼;
大家也可以在這里把常用的代碼定義成模板,像main方法,for循環等等,方便快捷;
例如public static final int可以定義成下圖所示:

不會自定義的點擊查看:*[創建模板的教程](https://www.imooc.com/video/16219)*
### 五、postfix
**
>[success]大家在寫代碼的時候,寫完代碼會用點來提示我們,例如,100. 敲完回車會生成一個for循環,用到的就是postfix,這是一種比?live Templates還快的小助手,當然它也是不可編輯的,里面定義了大量常見的函數和模板,熟練使用能提高我們很多的編碼效率;*
*例如:*
**
回車以后結果如下
~~~
1 List<String> strings = new ArrayList();
2 for (int i = 0; i < strings.size(); i++) {
3
4 }
~~~
### 六、重構
>[info]Shift+F6 ?重命名
所有的文件,類名,函數名,屬性名都可以重命名,
值得點贊的是,只要你使用Shift+F6重命名,所有使用過這個名稱的地方都會跟著改變;
>[success]Ctrl+F6 重構函數
當你需要重構方法時,無論是增加參數,修改返回值,還是更改函數實現,只需要Ctrl+F6,就可以把所有用到此函數的地方一起重構,界面如下

### 七、抽取

>[waring]1.抽取變量

類似于圖中這樣,很多地方都用到了“aaaaaa”這個字符串,很明顯我們把“aaaaaa”抽取出來會更好;
對著它Ctrl+Alt+v

我們按照自己的需求,選擇抽取一個還是抽取所有;
>[danger]Ctrl+Alt+C ? ?抽取靜態變量 ?
>Ctrl+Alt+F ? ?抽取成員變量 ?
使用方法和抽取變量類似
Ctrl+Alt+P 抽取方法參數
Ctrl+Alt+M 抽取方法
當一個方法長度過長的時候,只需要把代碼分離成多個模塊,選中各個模塊只要Ctrl+Alt+M就能抽取為一個新的方法,我們只需要引用就好;
*?其他的一些小技巧:*
>1.每次寫完代碼都 ?Ctrl+Alt+L 一下,代碼美觀又符合規范;