idea的几个好用快捷键、常用配置(包括git)、jdk和javaSE和javaEE、创建一个SE工程、debug、创建一个Web工程、打war包
幾個好用的快捷鍵(持續(xù)更新)
Ctrl+Shift+f12 ,相當于myeclipse的ctrl+m 最大化窗口的
alt+shift+↑或↓,將當前行上移或下移
shift+enter ,當前行下一行插入一行并且光標定位到開頭
ctrl+enter ,當前行上一行插入一行并且光標定位到開頭
Ctrl+F12,可以顯示當前文件的結(jié)構(gòu)樹
Ctrl+H ,顯示繼承關系樹
Ctrl+E,最近的文件
Shift+Shift ,查找文件,類等等(包含自己寫的和自帶的,當時我查看的集合的一些類,也是面試重點)
Ctrl+Alt+T,可以把代碼包在一個塊內(nèi),例如:try/catch
Alt+Insert,可以生成構(gòu)造器/Getter/Setter等
Ctrl+Alt+V,可以引入變量。例如:new String(); 自動導入變量定義
Ctrl+Alt+L,格式化代碼
Ctrl+R,替換文本
Ctrl+F,查找文本,Shift+F3,向上查找/F3,向下查找
Alt+Shift+C,最近的更改歷史
Alt+Shift+Up/Down,上/下移一行
Shift+F6,重構(gòu) – 重命名-替換變量名
Alt+Enter: 1.自動導包 2.也可以實現(xiàn)未實現(xiàn)的方法,在接口類和實現(xiàn)類上按都行
Ctrl+/或Ctrl+Shift+/,注釋(//或者/**/)
Ctrl+J,模板代碼提示(例如:serr,fori)
Ctrl+Alt+空格,普通提示(我改成了跟eclipse一樣Alt+/)
F2 或 Shift+F2,高亮錯誤或警告快速定位
Ctrl+Shift+F7,高亮顯示所有該文本,按 Esc 高亮消失
Alt+F3,逐個往下查找相同文本,并高亮顯示
Ctrl+B/Ctrl+Click,快速打開光標處的類或方法(跳轉(zhuǎn)到定義處)
Ctrl+Alt+B,跳轉(zhuǎn)到方法實現(xiàn)處
Ctrl+Shift+Backspace,跳轉(zhuǎn)到上次編輯的地方
Ctrl+O,重寫父類的方法
Ctrl+I,實現(xiàn)接口的方法,一般用Alt+Enter
Ctrl+Y,刪除當前行
Ctrl+D , 復制當前行到下一行,myeclipse是刪除當前行!
Ctrl+Z ,萬能的撤銷
psvm/sout,main/System.out.println(); Ctrl+J,查看更多
Ctrl+U,轉(zhuǎn)到父類
Ctrl+Shift+”+/-”,全部展開、折疊
Ctrl+Shift+u ,選中后大小寫切換
一些相關文章摘錄
1 智能提示
Intellij首當其沖的當然就是Intelligence智能!基本的代碼提示用Ctrl+Space,還有更智能地按類型信息提示Ctrl+Shift+Space,但因為Intellij總是隨著我們敲擊而自動提示,所以很多時候都不會手動敲這兩個快捷鍵(除非提示框消失了)。用F2/ Shift+F2移動到有錯誤的代碼,Alt+Enter快速修復(即Eclipse中的Quick Fix功能)。當智能提示為我們自動補全方法名時,我們通常要自己補上行尾的反括號和分號,當括號嵌套很多層時會很麻煩,這時我們只需敲Ctrl+Shift+Enter就能自動補全末尾的字符。而且不只是括號,例如敲完if/for時也可以自動補上{}花括號。
最后要說一點,Intellij能夠智能感知Spring、Hibernate等主流框架的配置文件和類,以靜制動,在看似“靜態(tài)”的外表下,智能地掃描理解你的項目是如何構(gòu)造和配置的。
2 重構(gòu)
Intellij重構(gòu)是另一完爆Eclipse的功能,其智能程度令人瞠目結(jié)舌,比如提取變量時自動檢查到所有匹配同時提取成一個變量等。尤其看過《重構(gòu)-改善既有代碼設計》之后,有了Intellij的配合簡直是令人大呼過癮!也正是強大的智能和重構(gòu)功能,使Intellij下的TDD開發(fā)非常順暢。
切入正題,先說一個無敵的重構(gòu)功能大匯總快捷鍵Ctrl+Shift+Alt+T,叫做Refactor This。按法有點復雜,但也符合Intellij的風格,很多快捷鍵都要雙手完成,而不像Eclipse不少最有用的快捷鍵可以瀟灑地單手完成(不知道算不算Eclipse的一大優(yōu)點),但各位用過Emacs的話就會覺得也沒什么了(非Emacs黑)。此外,還有些最常用的重構(gòu)技巧,因為太常用了,若每次都在Refactor This菜單里選的話效率有些低。比如Shift+F6直接就是改名,Ctrl+Alt+V則是提取變量。
3 代碼生成
這一點類似Eclipse,雖不是獨到之處,但因為日常使用頻率極高,所以還是羅列在榜單前面。常用的有fori/sout/psvm+Tab即可生成循環(huán)、System.out、main方法等boilerplate樣板代碼,用Ctrl+J可以查看所有模板。后面“輔助”一節(jié)中將會講到Alt+Insert,在編輯窗口中點擊可以生成構(gòu)造函數(shù)、toString、getter/setter、重寫父類方法等。這兩個技巧實在太常用了,幾乎每天都要生成一堆main、System.out和getter/setter。
另外,Intellij IDEA 13中加入了后綴自動補全功能(Postfix Completion),比模板生成更加靈活和強大。例如要輸入for(User user : users)只需輸入user.for+Tab。再比如,要輸入Date birthday = user.getBirthday();只需輸入user.getBirthday().var+Tab即可。
4 編輯
編輯中不得不說的一大神鍵就是能夠自動按語法選中代碼的Ctrl+W以及反向的Ctrl+Shift+W了。此外,Ctrl+Left/Right移動光標到前/后單詞,Ctrl+[/]移動到前/后代碼塊,這些類Vim風格的光標移動也是一大亮點。以上Ctrl+Left/Right/[]加上Shift的話就能選中跳躍范圍內(nèi)的代碼。Alt+Forward/Backward移動到前/后方法。還有些非常普通的像Ctrl+Y刪除行、Ctrl+D復制行、Ctrl+</>折疊代碼就不多說了。
關于光標移動再多擴展一點,除了Intellij本身已提供的功能外,我們還可以安裝ideaVim或者emacsIDEAs享受到Vim的快速移動和Emacs的AceJump功能(超爽!)。另外,Intellij的書簽功能也是不錯的,用Ctrl+Shift+Num定義1-10書簽(再次按這組快捷鍵則是刪除書簽),然后通過Ctrl+Num跳轉(zhuǎn)。這避免了多次使用前/下一編輯位置Ctrl+Left/Right來回跳轉(zhuǎn)的麻煩,而且此快捷鍵默認與Windows熱鍵沖突(默認多了Alt,與Windows改變顯示器顯示方向沖突,一不小心顯示器就變成倒著顯式的了,冏啊)。
5查找打開
類似Eclipse,Intellij的Ctrl+N/Ctrl+Shift+N可以打開類或資源,但Intellij更加智能一些,我們輸入的任何字符都將看作模糊匹配,省卻了Eclipse中還有輸入*的麻煩。最新版本的IDEA還加入了Search Everywhere功能,只需按Shift+Shift即可在一個彈出框中搜索任何東西,包括類、資源、配置項、方法等等。
類的繼承關系則可用Ctrl+H打開類層次窗口,在繼承層次上跳轉(zhuǎn)則用Ctrl+B/Ctrl+Alt+B分別對應父類或父方法定義和子類或子方法實現(xiàn),查看當前類的所有方法用Ctrl+F12。
要找類或方法的使用也很簡單,Alt+F7。要查找文本的出現(xiàn)位置就用Ctrl+F/Ctrl+Shift+F在當前窗口或全工程中查找,再配合F3/Shift+F3前后移動到下一匹配處。
Intellij更加智能的又一佐證是在任意菜單或顯示窗口,都可以直接輸入你要找的單詞,Intellij就會自動為你過濾。
6 其他輔助
以上這些神鍵配上一些輔助快捷鍵,即可讓你的雙手90%以上的時間擺脫鼠標,專注于鍵盤仿佛在進行鋼琴表演。這些不起眼卻是至關重要的最后一塊拼圖有:
? 命令:Ctrl+Shift+A可以查找所有Intellij的命令,并且每個命令后面還有其快捷鍵。所以它不僅是一大神鍵,也是查找學習快捷鍵的工具。
? 新建:Alt+Insert可以新建類、方法等任何東西。
? 格式化代碼:格式化import列表Ctrl+Alt+O,格式化代碼Ctrl+Alt+L。
? 切換窗口:Alt+Num,常用的有1-項目結(jié)構(gòu),3-搜索結(jié)果,4/5-運行調(diào)試。Ctrl+Tab切換標簽頁,Ctrl+E/Ctrl+Shift+E打開最近打開過的或編輯過的文件。
? 單元測試:Ctrl+Alt+T創(chuàng)建單元測試用例。
? 運行:Alt+Shift+F10運行程序,Shift+F9啟動調(diào)試,Ctrl+F2停止。
? 調(diào)試:F7/F8/F9分別對應Step into,Step over,Continue。
此外還有些我自定義的,例如水平分屏Ctrl+|等,和一些神奇的小功能Ctrl+Shift+V粘貼很早以前拷貝過的,Alt+Shift+Insert進入到列模式進行按列選中。
7 最終榜單
這榜單陣容太豪華了,后幾名都是如此有用,毫不示弱。
? Top #10切來切去:Ctrl+Tab
? Top #9選你所想:Ctrl+W
? Top #8代碼生成:Template/Postfix +Tab
? Top #7發(fā)號施令:Ctrl+Shift+A
? Top #6無處藏身:Shift+Shift
? Top #5自動完成:Ctrl+Shift+Enter
? Top #4創(chuàng)造萬物:Alt+Insert
太難割舍,前三名并列吧!
? Top #1智能補全:Ctrl+Shift+Space
? Top #1自我修復:Alt+Enter
? Top #1重構(gòu)一切:Ctrl+Shift+Alt+T
常用配置
黑白主題
取消這個對勾不用每次打開上一次的項目,而是自己來選擇
keymap–>other–>Class Name Completion
編碼區(qū)的字體大小設置
控制臺字體大小設置,可以設置的根編碼區(qū)字體大小一樣
修改默認的一些模板
下載和安裝git,下載地址:https://git-scm.com/download/win,我本機使用的是window操作系統(tǒng),安裝好。
分別輸入github的地址,本地空間路徑,項目名稱自動顯示出的。右邊Test一下。很簡單。
經(jīng)過漫長的等待,就ok了。
我這已經(jīng)導入了,所以下面出現(xiàn)了警告信息。
導入完成的項目如下:
補充點github的地址:
點擊Clone or Download就會出現(xiàn)地址。
構(gòu)建工程一般就下面這2個
編譯項目
SE工程的的使用
創(chuàng)建se工程的時候只需要選上本地java的SDK就行(jdk的根目錄就行),然后選擇本地的存儲project路徑
下圖中的紅字理解最好(這樣可以在一個workspace中查看當前所有的工程項目),但是你要說每一個project就是project就是工程就是一個項目也行,那樣的話,你就建一個workspace目錄,然后每一個工程都新建一個project,然后存到workspace目錄下,通過新窗口打開,來實現(xiàn)項目之間的對照查看等等,只不過不再一個窗口上,查看有點不太方便
對于上圖紅字的理解,你new一個空的project當workspace就行
生成java class,里面包含接口,類,單例類等等
Alt+insert 選中一個目錄或包,可以新建一個class、package等等操
Alt+insert 在類中點擊可以生成getter setter、構(gòu)造器、toString方法等等
shift+f6:重命名 類名,文件名,變量名等等,如果某個類名寫錯了,而且還有依賴關系,它會將類名,文件名,以及一些依賴的地方都會自動進行修改,有些不是強行依賴的地方(例如修改的接口類UserService,而實現(xiàn)類的名字UserServiceImpl會提示你是否也跟隨著修改,因為這里只是編碼規(guī)范,名字不一樣不是什么語法錯誤)
修改完后直接點回車就行
Alt+Enter: 1.自動導包 2.也可以實現(xiàn)未實現(xiàn)的方法,在接口類和實現(xiàn)類上按都行
也可以自己設置自動導包,不需要手動導入
IntelliJ IDEA可以自動優(yōu)化導入包,但是有多個同名的類位于不同的包時,需要自己手動使用Alt + Enter進行導入。
Settings→Editor→General→Auto Import
選中Optimize imports on the fly和Add unambiguous imports on the fly
Optimize imports on the fly:自動去掉一些沒有用到的包
Add unambiguous imports on the fly:自動幫我們優(yōu)化導入的包
sout:輸出語句自動補全
soutv:輸出一個值,用于測試的較多,如下
手動創(chuàng)建一個測試類,如下
Debug斷點調(diào)試
綠色的代表執(zhí)行完了,黃色的代表將要執(zhí)行,但是目前這行還沒執(zhí)行
step over:一步一步 越過 詳細中間過程,到當前文件的下一行
step into:一步一步 進入 到詳細中間過程(會跳的別的文件中)
最左下角那個方框中可以查看所有的斷點,可以執(zhí)行刪除斷點的操作。
web工程的使用
教你部署一個web項目:https://www.cnblogs.com/jxldjsn/p/8203859.html
這里我就創(chuàng)建在同一個workspace(也就是empty project)中,所以我是new Module,沒有new Project
明確幾個概念:javaSE版(標準) 和 javaEE版本(企業(yè))是2個概念,發(fā)布的時間也都是互相獨立的,例如現(xiàn)在最新的是javaSE11和javaEE8。
(關于javaME用的較少,一般是嵌入式或手機應用或小設備有應用,刪減了javaSE的部分東西,加了一點適用小設備的API,安卓一般用的是SE+Android的SDK,也不用這個)
sdk:Software Development Kit 軟件開發(fā)工具包,一個總稱
jdk:Java Development Kit java開發(fā)工具包, jdk不分javaME,javaSE,javaEE,但是大家口中的jdk一般指的的javaSE
javaEE JavaSE javaME 用的JDK是同一個,開發(fā)javaSE工程的話只要有JDK就可以了,開發(fā)javaEE工程和javaME工程除了需要JDK還要有他們各自的一些jar包協(xié)助開發(fā)。
javaSE是基礎 包含基礎類,javaEE包含javaSE并且還有一些web開發(fā)的相關類
但是好像javaSE也可以用來開發(fā)web項目,可能是都集合了,哪個都可以了,還是說因為大家的ide(Integrated Development Environment 集成開發(fā)環(huán)境=編程軟件)中集成了javaee?并肯定不是集合了(否則就不用分ee和se了),也不是集成了(那還需要下載什么jdk,直接都集成更好,而且版本眾多而且一直在更新沒法集成的),真正的原因是你開發(fā)web項目的時候用的還是javase,也就是jdk,但是你需要自己去導入相關web開發(fā)的jar包而已,一般咱們都是用哪個jar包導入哪個。
因此一般去官網(wǎng)下載的都是下載javaSE,目前版本用的最多的是1.8版,也是大家口中說的jdk1.8版本
下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
一般創(chuàng)建一個web項目的時候都需要選擇一個servlet版本(影響著web.xml寫法) 例如3.1版 4.0版,而這個版本又與javaEE的版本有關,例如javaEE8或更高—servlet4.0 javaEE7或更高—servlet3.1等等
C:\Users\Administrator>java -versionjava version "1.8.0_31"-->JDKJava(TM) SE Runtime Environment (build 1.8.0_31-b13)--》JREJava HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)-->64位下圖中的javaEE版本有些說法,javaEE8一般不用web.xml,因為大部分都用注解的方式
所以可以將javaEE版本換7,底下的版本號選的是web.xml的3.1,但是根據(jù)表格用EE8也沒問題
tomcat版本和servletl版本(也是web.xml版本)和jdk版本是有對應關系的
| 4.0 | 2.3 | 3.0 | 1.1 | 1.1 | 9.0.x | 9.0.1 | 8 and later |
| 3.1 | 2.3 | 3.0 | 1.1 | 1.1 | 8.5.x | 8.5.37 | 7 and later |
| 3.1 | 2.3 | 3.0 | 1.1 | N/A | 8.0.x (superseded) | 8.0.53 (superseded) | 7 and later |
| 3.0 | 2.2 | 2.2 | 1.1 | N/A | 7.0.x | 7.0.92 | 6 and later(7 and later for WebSocket) |
| 2.5 | 2.1 | 2.1 | N/A | N/A | 6.0.x (archived) | 6.0.53 (archived) | 5 and later |
| 2.4 | 2.0 | N/A | N/A | N/A | 5.5.x (archived) | 5.5.36 (archived) | 1.4 and later |
| 2.3 | 1.2 | N/A | N/A | N/A | 4.1.x (archived) | 4.1.40 (archived) | 1.3 and later |
| 2.2 | 1.1 | N/A | N/A | N/A | 3.3.x (archived) | 3.3.2 (archived) | 1.1 and later |
通過利用web.xml中寫sevlet標簽和servlet-mapping標簽實踐證明,我用
javaEE8–web.xml4.0(有個警告:21-Dec-2018 08:35:52.335 WARNING [RMI TCP Connection(5)-127.0.0.1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]. Default version will be used. 自己根據(jù)上面的官方表格推斷應該是我的tomcat版本低了的問題,但正常使用,因為這個警告說默認版本將被使用應該是自動給我降了web.xml的版本吧)
javeEE8–web.xml3.1
javaEE7–web.xml3.1
tomcat都是8.0.9都正常使用,沒啥問題
server:服務器的意思
Deployment:部署的意思
如下圖在部署Deployment選項卡中,可以點擊加號來添加更多的web項目(也就是說 啟動一個tomcat,部署多個web項目),每個項目都要起個上下文路徑用來訪問
上面這些配置好,就可以啟動tomcat了,主頁面上的綠色三角啟動就行,因為項目已經(jīng)部署好了
改了后端代碼只需要點擊重新部署一下就行,不用重啟tomcat,大大提高了效率!!
下圖中選中的是3個已經(jīng)部署好了的web項目,雙擊可以直接從瀏覽器中訪問!!
關于web項目的war包:
exploded:分解的–》這種模式在你運行項目之后會產(chǎn)生一個分解的完整的項目文件夾(不是一個壓縮包),該文件夾可以直接放到你的web容器中,就可以運行。
archived:存檔的–》顧名思義,就是不但會產(chǎn)出一個分解的完整的項目文件夾,而且還會存檔一份war壓縮包,也就是一共產(chǎn)出2個文件(一個文件夾,一個war壓縮包,里面內(nèi)容是一樣的),拿出這個war包就行,到客戶那里去解開放到web容器中就行,linux中直接上傳war包到tomcat中,就會自動解開。
新版本中選擇archived–>for ****(這里只會顯示你已經(jīng)建好的war explded),也就是說相當于將之前解壓的給你打war包存檔一份
idea中會自動為我的每一個web項目自動創(chuàng)建一個exploded war(如果沒有 就自己創(chuàng)建一個),然后你需要創(chuàng)建一個war的為了壓縮包方便拷貝等等。在File->project structure->Artifacts中查看
平常run項目的的時候會自動打出war包
也可以Build->build Artifacts來選擇打哪一個項目
勾選include in project build(包含在構(gòu)建項目中:意思就是在構(gòu)建項目的時候也會把這個war包順手也打了)選項,那么直接點擊Build->build project(這個就是構(gòu)建項目),也可以打包成war包。
總結(jié)
以上是生活随笔為你收集整理的idea的几个好用快捷键、常用配置(包括git)、jdk和javaSE和javaEE、创建一个SE工程、debug、创建一个Web工程、打war包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Springboot mybatis-
- 下一篇: 错过了落日余晖 还有满天繁星