IDEA開發工具
一、編碼神器-IDEA
(一)IDEA介紹[瞭解]
l 官網:http://www.jetbrains.com/idea/download/#section=windows
l 官網教程:
https://www.jetbrains.com/help/idea/install-and-set-up-product.html
l 百科介紹
l IDEA是 JetBrains 公司的產品,公司旗下還有其它產品,比如:
Ø WebStorm:用於開發 JavaScript、HTML5、CSS3 等前端技術;
Ø PyCharm:用於開發 python
Ø PhpStorm:用於開發 PHP
Ø RubyMine:用於開發 Ruby/Rails
Ø AppCode:用於開發 Objective - C/Swift
Ø CLion:用於開發 C/C++
Ø DataGrip:用於開發數據庫和 SQL
Ø Rider:用於開發.NET
Ø GoLand:用於開發 Go
Ø Android Studio:用於開發 android
l IDEA,全稱 IntelliJ IDEA,是 Java 語言的集成開發環境,IDEA 在業界被公認爲是最好的 java 開發工具之一,尤其在智能代碼助手、代碼自動提示、Debug調試、重構、J2EE支持、Ant、JUnit、CVS 整合、代碼審查、創新的 GUI 設計等方面的功能可以說是超常的。
IntelliJ IDEA 在 2015 年的官網上這樣介紹自己:
Excel at enterprise, mobile and web development with Java, Scala and Groovy,with all the latest modern technologies and frameworks available out of thebox.
翻譯:
IntelliJ IDEA 主要用於支持 Java、Scala、Groovy 等語言的開發工具,同時具備支持目前主流的技術和框架,擅長於企業應用、移動應用和 Web 應用的開發。
l 注意: IntelliJ IDEA 對硬件的要求
2G 內存的計算機只適合寫小程序、小項目或是開發靜態頁面。
Java Web 項目最好的方案是 8G 內存或是以上,硬盤能再用上固態是最好的,因爲IntelliJ IDEA 有大量的緩存、索引文件,把 IntelliJ IDEA 的緩存、索引文件放在固態上,IntelliJ IDEA 流暢度也會加快很多。
(二)下載-安裝[掌握]
1.下載
https://www.jetbrains.com/idea/download/#section=windows
2.安裝
(1)點擊安裝
l 本教程所對應的版本2017.3.2版本
注意:所有軟件安裝路徑中不能出現空格和中文!!!
l 在桌面上創建一個快捷圖標,建議勾選上,方便我們在安裝後定位 IntelliJ IDEA 安裝目錄。
l 關聯 Java 和 Groovy 文件,建議都不要勾選,正常我們會在 Windows 的文件系統上打開這類文件都是爲了快速查閱文件裏面的內容,如果用 IntelliJ IDEA 關聯上之後,由於 IntelliJ IDEA 打開速度緩慢,這並不能方便我們查看
(2)運行並破解
百度idea服務器破解或者idea破解碼
(3)選擇UI主題
(4)選擇插件(跳過)
這裏可以按默認設置,點擊下一步,後續可以在settings中修改
3.目錄介紹
(1)安裝目錄
bin:容器,執行文件和啓動參數等
help:快捷鍵文檔和其他幫助文檔
jre64:64 位java 運行環境
lib:idea 依賴的類庫
license:各個插件許可
plugins:插件
其中:bin 目錄下:
• idea.exe 文件是 IntelliJ IDEA 32 位的可行執行文件,IntelliJ IDEA 安裝完默認發送到桌面的也就是這個執行文件的快捷方式。
• idea.exe.vmoptions 文件是 IntelliJ IDEA 32 位的可執行文件的 VM 配置文件
• idea64.exe 文件是 IntelliJ IDEA 64 位的可行執行文件,要求必須電腦上裝有 JDK 64 位版本。64 位的系統也是建議使用該文件。
• idea64.exe.vmoptions 文件是 IntelliJ IDEA 64 位的可執行文件的 VM 配置文件
• idea.properties 文件是 IntelliJ IDEA 的一些屬性配置文件
配置文件修改的原則主要是根據自己機器的內存情況來判斷的,個人是建議 8G 以下的機子或是靜態頁面開發者都是無需修改的。如果你是開發大型項目、Java 項目或是 Android 項目,並且內存大於 8G,建議進行修改
-Xms128m,16 G 內存的機器可嘗試設置爲 -Xms512m (設置初始的內存數,增加該值可以提高 Java 程序的啓動速度。)
-Xmx750m,16 G 內存的機器可嘗試設置爲 -Xmx1500m (設置最大內存數,提高該值,可以減少內存 Garage 收集的頻率,提高程序性能)
-XX:ReservedCodeCacheSize=240m,16G 內存的機器可嘗試設置爲-XX:ReservedCodeCacheSize=500m (緩存大小)
(2)配置目錄
l 目錄介紹
• 對於這個設置目錄有一個特性,就是你刪除掉整個目錄之後,重新啓動 IntelliJ IDEA 會再自動幫你再生成一個全新的默認配置,所以很多時候如果你把 IntelliJ IDEA 配置改壞了,沒關係,刪掉該目錄,一切都會還原到默認,我是很建議新人可以多自己摸索 IntelliJ IDEA 的配置,多幾次還原,有助於加深對 IntelliJ IDEA 的瞭解。
• config 目錄是 IntelliJ IDEA 個性化化配置目錄,或者說是整個 IDE 設置目錄。也是我個人認爲最重要的目錄,沒有之一,安裝新版本的 IntelliJ IDEA 會自動掃描硬盤上的舊配置目錄,指的就是該目錄。這個目錄主要記錄了:IDE 主要配置功能、自定義的代碼模板、自定義的文件模板、自定義的快捷鍵、Project 的 tasks 記錄等等個性化的設置。
• system 目錄是 IntelliJ IDEA 系統文件目錄,是 IntelliJ IDEA 與開發項目一個橋樑目錄,裏面主要有:緩存、索引、容器文件輸出等等,雖然不是最重要目錄,但是也是最不可或缺目錄之一。
l 配置文件的位置可以通過修改properties文件進行指定
• 上圖是 IntelliJ IDEA 一些屬性配置,沒有 32 位和 64 位之分,修改原則主要根據個人對 IntelliJ IDEA 的個性化配置情況來分析。常修改的就是下面 4 個參數:
• idea.config.path=${user.home}/.IntelliJIdea/config ,該屬性主要用於指向 IntelliJ IDEA 的個性化
配置目錄,默認是被註釋,打開註釋之後纔算啓用該屬性,這裏需要特別注意的是斜槓方向,這裏用的是正斜槓。
• idea.system.path=${user.home}/.IntelliJIdea/system ,該屬性主要用於指向 IntelliJ IDEA 的系統文件目錄,默認是被註釋,打開註釋之後纔算啓用該屬性,這裏需要特別注意的是斜槓方向,這裏用的是正斜槓。如果你的項目很多,則該目錄會很大,如果你的 C 盤空間不夠的時候,還是建議把該目錄轉移到其他盤符下。
(三)入門案例[掌握]
1.創建普通Java工程
(1)創建工程並編寫代碼
l 新建工程
•Create New Project 創建一個新項目。
•Import Project 導入一個已有項目。
•Open 打開一個已有項目。
•Check out from Version Control 可以通過服務器上的項目地址 Checkout Github 上面項目或是其他 Git 託管服務器上的項目。
l next
l 指定名稱和位置
l 顯示工具
l 界面說明
Ø 工程下的 src 類似於 Eclipse 下的 src 目錄,用於存放代碼。
Ø 工程下的.idea 和 .iml 文件都是 IDEA 工程特有的。類似於 Eclipse 工程下的.settings、.classpath、.project 等。
ü .idea 即爲 Project 的配置文件目錄。
ü .iml 即爲 Module 的配置文件。
l 設置項目jdk環境
l 創建類
l 注意:不管是創建 class,還是 interface,還是 annotation,都是選擇 new – java class
l 編寫代碼
l 說明:在 IDEA 裏寫完代碼,不用點擊保存。
l 運行代碼
注意:IntelliJ IDEA 是一個沒有 Ctrl + S 的 IDE,所以每次修改完代碼你只要管着運行或者調試即可,無需擔心保存或者丟失代碼。
(2)添加jar包
2.創建web工程
中間件服務器:tomcat、weblogic、websphere、jettyjboss
現在基本的web項目是創建了,但是目錄結構還有很多需要修改的。
l 創建WEB-INF目錄
在web文件夾上右鍵–>New->Directory:WEB-INF
l 沒有lib目錄和classes目錄
在WEB-INF文件夾上右鍵–>New->Directory:創建兩個文件夾:classes和lib,結果如下:
l 沒有web.xml問題解決
編譯地址的修改:File–>Project Structure–>Modules–>Paths:選擇Use module compile output path:選擇classes目錄
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Created by caowei on 2018/8/10.
*/
@WebServlet("/hello")
public class MavenDemo1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().print(new Date().toLocaleString());
}
}
修改配置支持熱部署
訪問測試
或者在創建完web項目後再添加tomcat支持
(四)概念說明[瞭解]
1.圖標
Source root說明:你可以理解爲源目錄,源碼的作用就是用來專門放 Java 類文件,相對於編譯出來的 class 文件而言,它就是源。我們一般默認名字叫 src 的目錄就是源目錄,但是其實並不是這樣的,在 IntelliJ IDEA 中,即使叫 srcs 也是可以設置爲 Source root ,所以源目錄跟目錄命名是沒有關係的,而是在於 IntelliJ IDEA 支持對任意目錄進行設置爲 Source root ,作用是標記該目錄下的文件是可編譯的。
2.Project和Module
l 官網說明
https://www.jetbrains.com/idea/help/eclipse.html
IDEA 官網:
An Eclipse workspace is similar to a project in IntelliJ IDEA
An Eclipse project maps to a module in IntelliJ IDEA
翻譯 :
Eclipse 中 workspace 相當於 IDEA 中的 的 Project
Eclipse 中 Project 相當於 IDEA 中的 Module
l 說明
IntelliJ IDEA 是沒有類似 Eclipse 的工作空間的概念( Workspaces ),最大單元就是 Project 。如果你同時觀察多個項目的情況,IntelliJ IDEA 提供的解決方案是打開多個項目實例,你可以理解爲開多個項目窗口。
在 IntelliJ IDEA 中 Project 是最頂級的級別,次級別是 Module。一個 Project可以有多個 Module。
目前主流的大型項目結構都是類似這種多 Module 結構,這類項目一般是這樣劃分的,比如:core Module、web Module、plugin Module、solr Module 等等,模塊之間彼此可以相互依賴。通過這些 Module 的命名也可以看出,他們之間應該都是處於同一個項目業務情況下的模塊,彼此之間是有不可分割的業務關係的。
所以我們現在總結:一個 Project 是由一個或多個 Module 組成,模塊之間儘量是處在同一個項目業務的的情況下,彼此之間互相依賴關聯。這裏用的是儘量 ,因爲 IntelliJ IDEA 的 Project 是一個沒有具備任何編碼設置、構建等開發功能的,主要起到一個項目定義、範圍約束、規範等類型的效果,也許我們可以簡單地理解爲就是一個單純的目錄,只是這個目錄命名上必須有其代表性的意義
l 但是
我們可以通過使用Project管理Module的方式,實現類似Eclipse中Workspace的概念,即把 Project當作Eclipse中的Workspace使用,如:
l 新建空項目作爲工作空間
新建module作爲項目
最後可以實現像Eclipse一樣的效果
l 注意:刪除模塊前需要先移除模塊,然後去磁盤目錄手動刪除即可
(五)常見設置[應用]
1.顯示工具欄圖標
2.查看項目配置(項目源目錄、輸出以及所依賴的jar**)**
或者
3.全局默認設置(配置針對整個Idea生效)
或者
4.普通設置(針對Project級別,工作空間級別)
說明
注意:通過settings進行的普通設置有一些可以全局生效
5.更改字體大小通過ctrl+鼠標滾輪
6.代碼提示不區分大小寫
7.修改主題
l 修改主題
8.修改字體(瞭解)
修改控制檯輸出字體
9.修改控制檯字體顏色(瞭解)
10.修改註釋的字體顏色(瞭解)
Ø Doc Comment – Text:修改文檔註釋的字體顏色
Ø Block comment(塊註釋):修改多行註釋的字體顏色
Ø Line comment:修改當行註釋的字體顏色
11.設置文件編碼(重要)
說明:Transparent native-to-ascii conversion 主要用於轉換 ascii,一般都要勾選,不然 Properties 文件中的註釋顯示的都不會是中文
12.設置鼠標懸浮提示
13.自動導包&優化導包
14.設置自動編譯
類似於Eclipse中的自動編譯
15.空格與tab縮進設置
16.顯示行號和方法分割線
17.去除單詞拼寫檢查
18.清理緩存和索引
隨着項目越來越大,新編寫的代碼沒有立即生效(引用等),此時可以清理緩存和索引
通過上面方式清除緩存、索引本質也就是去刪除 C 盤下的 system 目錄下的對應的文件而已,所以如果你不用上述方法也可以刪除整個 system 。當 IntelliJ IDEA 再次啓動項目的時候會重新創建新的 system 目錄以及對應項目緩存和索引。
如果你遇到了因爲索引、緩存壞了以至於項目打不開,那也建議你可以直接刪除 system 目錄,一般這樣都可以很好地解決你的問題。
19.設置目錄摺疊
20.定位到當前文件所在目錄
21.配置文件的生成模板
/**
* @author ${USER}
* @date ${DATE} ${TIME}
* @description
*/
22.Debug
23.省電模式
如上圖標註 1 所示,IntelliJ IDEA 有一種叫做 省電模式 的狀態,開啓這種模式之後 IntelliJ IDEA 會關掉代碼檢查和代碼提示等功能。所以一般我也會認爲這是一種 閱讀模式
如果你在開發過程中遇到突然代碼文件不能進行檢查和提示可以來看看這裏是否有開啓該功能。
24.顯示內存佔用
25.設置水平或者垂直分屏編輯
26.設置啓動idea或打開項目時提示
27.設置代碼環繞
Ctrl + Alt + T
28.取消更新
29.查看本地文件編輯歷史
類似ctrl+z功能的升級
30.生成 javadoc
zh_CN
-encoding UTF-8 -charset UTF-8
31.自定義代碼模版
l 關於模板(Templates)
代碼模板的原理就是配置一些常用代碼字母縮寫,在輸入簡寫時可以出現你預定義的固定模式的代碼,使得開發效率大大提高,同時也可以增加個性化。
最簡單的例子就是在 Java 中輸入 sout 會出現 System.out.println();
l Idea中代碼模板有兩類Live Templates和Postfix Completion
二者的區別:Live Templates 可以自定義,而 Postfix Completion 不可以。同時,有些操作二者都提供了模板,Postfix Templates 較 Live Templates 能快 0.01 秒
l 官方介紹 Live Templates:
https://www.jetbrains.com/help/idea/using-live-templates.html
l Postfix Completion
Live Templates
Itli遍歷集合/itar遍歷數組(使用較多)
二者的區別:有些操作二者都提供了模板,Postfix Templates 較 Live Templates 能快 0.01 秒
舉例 :
l psvm : 可生成 main 方法
l sout : System.out.println() 快捷輸出
類似的:
soutp=System.out.println("方法形參名 = " + 形參名);
soutv=System.out.println("變量名 = " + 變量);
soutm=System.out.println(“當前類名.當前方法”);
“abc”.sout => System.out.println(“abc”);
l fori : 可生成 for 循環
類似的:
iter:可生成增強 for 循環
itar:可生成普通 for 循環
l list.for : 可生成集合 list 的 的 for 循環
List list = new ArrayList();
輸入: list.for 即可輸出
for(String s:list){
}
又如:list.fori 或 list.forr
l ifn :可生成 if(xxx = null)
類似的:
inn:可生成 if(xxx != null) 或 xxx.nn 或 xxx.null
l prsf :可生成 private static final
類似的:
psf:可生成 public static final
psfi:可生成 public static final int
psfs:可生成 public static final String
經常使用的如下:
l 修改現有模板 修改現有模板:Live Templates
如果對於現有的模板,感覺不習慣、不適應的,可以修改:
修改 1 :
通過調用 psvm 調用 main 方法不習慣,可以改爲跟 Eclipse 一樣,使用 main 調取。
修改 2 :
類似的還可以修改 psfs。
l 自定義模板 自定義模板
IDEA 提供了很多現成的 Templates。但你也可以根據自己的需要創建新的Template。
先定義一個模板的組:
選中自定義的模板組,點擊”+”來定義模板。
@Test
public void test$VAR1$(){
$END$
}
\1. Abbreviatio:模板的縮略名稱
\2. Description:模板的描述
\3. Template text:模板的代碼片段
\4. 應用範圍:比如點擊 Define,然後在 java 類文件中應用即可
類似的可以再配置自己喜歡的Template:
(六)IDEA快捷鍵[應用]
1.Idea原生快捷鍵
快捷鍵 | 介紹 |
---|---|
Alt + Enter | 根據光標處所在的問題,提供快速修復選擇,光標放在的位置不同提示的結果也不同(萬能修復快捷鍵,同時可以幫助我們生成本地變量==eclipse中的ctrl+1)注意:非個人編碼問題導致的錯誤,都可以嘗試使用該快捷鍵修復 |
Alt + Insert | 代碼自動生成,如生成對象的 set / get 方法,構造函數,toString() 等 |
Shift + Shift | 查找所有文件 |
Ctrl + D | 複製當前行到下一行 |
Ctrl + Y | 刪除當前行 |
Alt + 左方向鍵 | 向左切換tab |
Alt + 右方向鍵 | 向右切換tab |
Ctrl + Alt + 左方向鍵 | 快速返回上次查看代碼的位置(Back) |
Ctrl + Alt + 右方向鍵 | 快速返回上次查看代碼的位置(Forward) |
Ctrl + F | 在當前文件進行文本查找 |
Ctrl + Shift + F | 在當前項目進行文本查找 |
Ctrl + R | 在當前文件進行文本替換 |
Ctrl + Shift + R | 在當前項目進行文本替換 |
Ctrl + / | 註釋光標所在行代碼,會根據當前不同文件類型使用不同的註釋符號 |
Ctrl + Shift + / | 代碼塊註釋 |
Ctrl + Alt + L | 格式化代碼,可以對當前文件和整個包目錄使用 |
Alt + 7 | 顯示當前類中的所有方法、全局常量,方法還包括形參和返回值 |
Alt + F7 | 可以查看一個Java類、方法或變量的直接使用情況。 |
ctrl + alt +b | 查看接口的實現類 |
ctrl + h | 查看類或接口的繼承關係 |
F7 | 在 Debug 模式下,進入下一步,如果當前行斷點是一個方法,則進入當前方法體內,Step Into |
F8 | 在 Debug 模式下,進入下一步,如果當前行斷點是一個方法,則不進入當前方法體內,Step Over |
F9 | 在 Debug 模式下,恢復程序運行,但是如果該斷點下面代碼還有斷點則停在下一個斷點上,Resume |
2.設置eclipse風格快捷鍵
常用快捷鍵:
提示補全 | Alt + / |
---|---|
單行註釋 | ctrl + / |
多行註釋 | ctrl + shift + / |
向下複製一行 | Ctrl + alt + down |
刪除一行或選中行 | Ctrl + d |
向下移動行 | Alt + down |
向上移動行 | Alt + up |
萬能糾錯/生成返回值變量 | Alt + enter(依然可用) |
退回到前一個編輯的頁面 (back) | Alt + left |
進入到下一個編輯的頁面(針對於上條) (forward) | Alt + right |
查看繼承關係(type hierarchy) | F4 |
格式化代碼 | ctrl+shift+F |
選中數行,整體往後移動 | tab |
選中數行,整體往前移動 | shift + tab |
查看類的結構:類似於eclipse 的outline | ctrl+o |
修改變量名與方法名 | Alt + shift + r |
大寫轉小寫/ 小寫轉大寫 | Ctrl + shift + y/x |
生成構造器/get/set/toString | Alt + insert(依然可用) |
Shift+shift | 萬能搜索(依然可用) |
查找/替換(當前) | Ctrl + f |
查找(全局) | Ctrl + h |
查看類的繼承結構圖 | Ctrl + ALT+ u |
打開最近改的文件 | Ctrl + E |
查找方法在哪裏被調用 | Ctrl + G |