Java開發工具的歷史變遷前端
JCreatorjava
Jcreator是荷蘭的Xinox Software公司開發的一個用於Java程序設計的集成開發環境(IDE),該公司成立於2001年;node
官方網站:http://www.jcreator.com/mysql
JBuilder程序員
JBuilder是Borland公司開發的針對Java的集成開發工具,該工具是收費的;web
Borland公司成立於1983年,總部位於美國加州;redis
JBuilder 當時在Java集成開發工具中風靡一時,但不久後也逐步被新的工具所戰勝;sql
2009年5月6日,英國軟件商Micro Focus宣佈以7500萬美圓現金收購Borland軟件公司;數據庫
eclipse緩存
Eclipse最初是由IBM公司開發的替代商業軟件Visual Age for Java的新一代Java集成開發環境;
2001年11月IBM將Eclipse貢獻給開源社區,後來一直由非營利軟件供應商聯盟Eclipse基金會(Eclipse Foundation)管理,直到如今;
myeclipse
由美國Genuitec公司開發一款的基於Eclipse的Java開發集成環境,該公司成立於1997年;
MyEclipse Enterprise Workbench於2003年的推出,該工具是收費的;
MyEclipse,是在eclipse基礎上加上本身的插件開發而成的功能強大的企業級Java集成開發環境,主要用於Java、Java EE以及移動應用的開發;
MyEclipse的功能很是強大,支持也十分普遍,尤爲是對各類開源框架和技術支持至關不錯;
netbeans
NetBeans是Sun公司(2009年被甲骨文收購)在2000年創立的開放源代碼的供開發人員開發Java程序的集成開發環境;
NetBeans是一個始於1997年的一個大學學生計劃,該計劃後來發展成立了一家公司,進而推出一個商用版本的NetBeans;
1999年Sun公司收購了此公司,並於2000年6月將NetBeans做爲開源項目對外發布;
Intellij IDEA
IntelliJ IDEA簡稱IDEA,它是 JetBrains 公司下的Java集成開發環境,在業界被公認爲是最好的Java開發工具之一;
JetBrains是捷克的一家軟件公司,該公司總部位於捷克共和國的首都布拉格,開發人員以嚴謹著稱的東歐程序員爲主,旗下開發了多款軟件開發工具;
官方網站:https://www.jetbrains.com/
Intellij IDEA工具已經有很長的歷史了,2001年1月發佈IntelliJ IDEA 1.0版本,只是一直沒有被大量使用;
IntelliJ IDEA之前是收費軟件,不過在2009年之後開始推出了免費的社區開源版本;
目前IntelliJ IDEA有免費的社區版(功能相對較少),和收費的旗艦版(功能比較全面);
JetBrains下的產品
IntelliJ IDEA
主要是針對 Java 的集成開發工具;
AppCode
主要針對 Objective-C / Swift 的集成開發工具;
CLion
主要針對 C / C++ 的集成開發工具;
GoLand
主要是針對 Go 語言的集成開發工具;
PhpStorm
主要是針對 PHP 的集成開發工具;
PyCharm
主要是針對 Python 的集成開發工具;
RubyMine
主要是針對 Ruby 的集成開發工具;
WebStorm
主要是針對 JavaScript、HTML五、CSS3 等前端技術的集成開發工具;
Rider
主要是針對 .net 的集成開發工具;
DataGrip
主要是數據庫可視化的鏈接和操做工具;
Idea的特色
IntelliJ IDEA 主要用於支持 Java 語言的開發工具,支持目前幾乎全部的主流技術和框架,擅長於企業應用、移動應用和 Web 應用的開發;
IntelliJ IDEA 很是地人性化、智能化,可自我定製,開發效率極高;
Idea版本
IntelliJ IDEA 分爲「旗艦版」和「社區版」;
旗艦版(Ultimate Edition)爲收費版本,功能強大,有30天免費試用期;
社區版(Community Edition)爲免費版本,功能較旗艦版少了不少,可一直無償使用;
通常地,IntelliJ IDEA 大版本爲一年迭代一次,大版本下的小版本迭代時間不固定,快則一個月,慢則兩至三月迭代一次;
目前最新版本爲:IntelliJ IDEA 2018.2.4
Idea使用前置說明
一、因爲Idea在亞洲沒有設服務器,因此在使用idea過程當中,好比訪問插件庫、更新版本等操做時可能出現一些問題,這是因爲網絡問題致使的;
二、Idea 對硬件的基礎要求雖然不是很高,但在實際的開發中,特別是開發大型 Java Web 項目時,2G 內存基本上不夠用,4G內存可使用,就是會比較卡頓,最好是 8G 內存或是以上;
三、Idea與eclipse在使用上有一些區別,咱們須要轉化思惟,不能按照eclipse的方式去學習Idea;
四、因爲咱們一直以來習慣了eclipse,因此咱們在學習idea的時候,可能有一段時間不適應,甚至產生放棄的念頭,這也是正常的,堅持幾天就行了;
Idea的下載安裝
官方網站下載:https://www.jetbrains.com/
Idea的下載包有兩種格式:一個是exe的安裝版,一個是zip的解壓縮版;
exe格式的安裝版須要安裝,而zip格式的解壓縮版不須要安裝,直接解壓便可使用;
推薦使用zip的解壓縮版,直接解壓便可使用,方便;
Idea目錄結構
Idea解壓後的目錄結構以下:
bin 是 IDEA 的可執行程序目錄;
help 是 IDEA 的幫助文件目錄;
jre32 是IDEA自帶的32位JRE環境;
jre64 是IDEA自帶的64位JRE環境,故IDEA可在未安裝 JDK 的計算機上進行Java語言的開發;
lib 是IDEA依賴的庫文件目錄,裏面有不少的 Jar 文件;
license 是 IDEA 的許可證文件目錄;
plugins 是IDEA的插件目錄;
redist 是IDEA中索引機制所依賴的redist庫目錄;
兩個 .txt 說明文件和一個註冊表文件;
Idea啓動運行
若是電腦是32位,則雙擊idea.exe啓動運行idea,若是是64位則雙擊idea64.exe啓動運行;
一、讓你選擇是否導入已經存在的舊配置信息;
二、讓你選擇Idea的主題顏色;
三、設置支持的框架,能夠自定義,沒有選擇的將不支持,但能夠後面在插件一欄中再加上;
四、進入Idea建立Project界面;
命令 Create New Project 建立一個新項目;
命令 Import Project 導入一個已有項目;
命令 Open 打開一個已有項目;
命令 Check out from Version Control 能夠經過服務器上的項目地址 Checkout Github 上面項目或是其餘 Git 託管服務器上的項目;
注:Idea啓動後默認會在C:\Users\電腦用戶名\.IntelliJIdea2017.3用戶目錄下建立配置和緩存索引信息目錄;
建立Project
一般第一次使用idea,咱們會選擇建立一個project;
第一次啓動使用idea,這裏建立的project實際上等價於建立一個工做空間,因此咱們一般選擇建立一個空的project;
Project與Mudoule
IntelliJ IDEA 是沒有相似 Eclipse 的工做空間的概念(workspaces ),Idea最大單元就是 Project;
若是你想同時打開多個項目,IntelliJ IDEA 提供的解決方案是打開多個項目實例,也就是打開多個Idea,也就是啓動多個idea,這樣的話,固然不是很方便;
因此,咱們要在一個idea中看多個項目,則經過建立一個空的project做爲工做空間,而後在該空的project下建立多個module做爲咱們的項目工程;
Idea的界面介紹
菜單欄
工具條
導航條
左側導航區域
中間編輯操做區域
右側導航區域
底部導航區域
-----------------------------------idae 的應用-------------------------------------------
建立Java項目
建議在一個空的Project下建立咱們的Java項目,也就是說咱們在一個空的Project下建立一個Java module;
方式:在菜單欄File-->New-->Module-->Java
項目配置說明
.iml爲模塊module的配置文件;
.idea爲工程Project的配置文件;
IntelliJ IDEA 是一個沒有 Ctrl + S (保存)的 IDE,因此每次修改完代碼你只管運行或調試便可,無需擔憂保存或者丟失代碼問題;
雖然IntelliJ IDEA不須要按Ctrl + S 保存代碼,但對於代碼的錯誤檢查也是實時的,無需擔憂代碼編譯問題;
若是須要總體編譯項目,則須要手動build一下;
在菜單欄File-->project結構下設置sdk,緊接着還能夠設置語言級別,java8仍是java9等,固然sdk選擇要和語言級別選擇保持版本一致;
Idea字體編碼設置
經過菜單中的 File -->Settings 進行設置(IntelliJ IDEA基本全部設置都在該菜單下);
字體設置
主題的字體通常不建議修改,主題就是指整個Idea工具;
代碼開發的編輯器的字體建議修改,在Editor下的Font選項修改,建議18號字;
編碼設置
文件編碼及工程編碼設置,在Editor下的File Encodings選項進行修改,建議所有改成UTF-8;
Java項目打jar包
在菜單欄File-->Project Structure
一、配置Module的依賴,在右側Dependencies下添加該Java項目依賴的第三方jar(若是沒有不用添加);
二、配置Artifacts,在中間區域選擇添加+符號-->從模塊和依賴,選擇模塊和主類,選擇拷貝到輸出目錄;
三、在菜單欄Build-->Build Artifacts... 選擇剛纔建立的Artifact,點OK將在輸出目錄下生成jar文件;
建立web項目
建立一個Module
選擇Java Enterprise,選擇Java EE8(或者Java EE 7/6),選擇建立web.xml (此處有小bug,可能web.xml不能出現)
配置tomcat
在菜單欄 run-->Edit Configurations下設置,能夠設置tomcat,端口,jvm等,能夠配多個tomcat;
啓動tomcat,點擊綠色三角形箭頭便可;
中止tomcat點擊紅色方形的按鈕,中止按鈕點擊後有可能沒有中止,一般會出現一個骷髏頭表示沒有中止,能夠再點擊一次;
有時候即便點了兩次,Tomcat 容器也不必定能徹底停掉,這時候很容易出現端口被佔用,這時候你須要打開系統的資源管理器,手動 kill 系統上全部的 Java 進程;
Idea上的web部署
一般在開發的時候,咱們的web項目部署到tomcat下調試運行,進行代碼的開發,
idea開發web項目,並在idea工具中部署到tomcat下的步驟以下:
部署tomcat前,先配置好actifacts,
在菜單欄File -->project Structure-->Actifacts下選擇添加+下的Web Application:Exploded -->From Module
在tomcat的Deployment下添加配置的Actifacts,並設置Application context
Idea打war包
打開Project Structure
配置Module的依賴,在右側Dependencies下添加依賴的jar;
配置Artifacts,在菜單欄File -->project Structure-->Actifacts下選擇添加+下的Web Application:Archive -->for xxx
在菜單欄Build-->Build Artifacts... 選擇剛纔建立的Artifact,點OK將在輸出目錄下生成war文件
Idea的索引與緩存
IntelliJ IDEA 首次加載項目的時候,都會建立索引,而建立索引的時間跟項目的文件多少成正比;在 IntelliJ IDEA 建立索引過程即便你編輯了代碼也是編譯不了、運行不起來的,因此建議等IntelliJ IDEA 建立索引完成後再操做;
IntelliJ IDEA 的緩存和索引主要是用來加快文件查詢,從而加快各類查找、代碼提示等操做的速度;
可是在某些特殊條件下,IntelliJ IDEA 的緩存和索引文件也是會損壞的,好比斷電、強制關機等,當從新打開 IntelliJ IDEA,極可能 IntelliJ IDEA 會報各類莫名其妙錯誤;
遇到此類問題,經過File-->Invalidate Cache and Restart清除緩存便可解決,通常建議點擊 Invalidate and Restart,這樣會比較乾淨;
索引文件所在目錄地址:C:\Users\當前登陸的系統用戶名\.IntelliJIdea14\system
若是不用上述方法也能夠刪除整個 system來清除索引和緩存,當 IntelliJ IDEA 再次啓動項目的時候會從新建立新的 system 目錄以及對應項目緩存和索引;
Idea刪除項目
idea刪除項目或模塊是沒法物理刪除的,只是邏輯上的刪除,
要真正刪除則須要進入所在目錄,在磁盤上手動刪除;
Idea代碼模板設置
IntelliJ IDEA 默認新建類自帶的類註釋格式通常不夠友好或是規範,因此咱們通常須要本身根據公司編碼規範進行設置;
菜單欄File-->Settings-->Editor-->File and Code Templates 下進行設置;
選擇不一樣的文件類型進行設置;
實時代碼模板
在菜單欄File--Settings -->Editor 下的Live Templates下,好比輸入sout即爲System.out.println()打印;
還能夠自定義實時代碼模板;
maven設置
在File-->Build,Execution,Deployment -->Build Tools下能夠設置maven;
能夠指定 Maven安裝主目錄,maven的settings.xml位置和本地倉庫位置;
建立maven項目
建立項目,能夠選擇不使用Maven提供的插件方式建立maven項目骨架,也能夠選擇使用好比xx-webapp,xxx-war的方式建立項目骨架;
maven項目編譯和打包,在工做空間的右側,展現maven projects區域,在lifecycle下展開雙擊對應的生命週期命令即能進行對應的操做;
maven的展開區域中還有一些功能按鈕,好比能夠查看jar包依賴關係等;
Idea插件的使用
IntelliJ IDEA 自己不少功能也都是經過插件的方式來實現的,IntelliJ IDEA 自己就開發了大量的插件集成到Idea工具中,也就是說Idea安裝好以後就自帶了不少優秀的插件;
官網插件庫:https://plugins.jetbrains.com/
在菜單欄File -->Settings -->Plugins打開插件窗口;
IntelliJ IDEA 對插件進行了很好的分類:
All plugins 顯示全部插件;
Enabled 顯示當前全部已經啓用的插件;
Disabled 顯示當期那全部已經禁用的插件;
Bundled 顯示全部 IntelliJ IDEA 自帶的插件;
Custom 顯示全部咱們自行安裝的插件,若是你本身裝了不少次插件的話,這個選項會用得比較多;
啓用的插件是被勾選的,若是要禁用一個插件,去掉勾選便可;
下面還有插件倉庫,是idea官方提供的,能夠下載安裝,固然也能夠從本地磁盤安裝插件,瀏覽本地的插件文件進行安裝,而不是從服務器上下載並安裝;
因爲插件倉庫在國外,可能會出現顯示不了插件列表,或是顯示了插件列表,沒法下載完成安裝,這時候能夠多試幾回或者換個時間下載安裝;
Idea安裝MyBatis插件
MyBatis plugin插件,但這個插件是收費插件,不能直接使用;
Free Mybatis plugin,能夠無償使用,能夠用依稀這個插件;
IntelliJ IDEA配置Mybatis自動代碼生成
配置一個插件:
<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <!--配置文件的位置--> <configurationFile>src/main/resources/GeneratorMapper.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>
配置代碼生成文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 指定鏈接數據庫的JDBC驅動包所在位置,指定到你本機的完整路徑 --> <classPathEntry location="C:/Users/jimly/.m2/repository/mysql/mysql-connector-java/5.1.44/mysql-connector-java-5.1.44.jar"/> <!-- 配置table表信息內容體,targetRuntime指定採用MyBatis3的版本 --> <context id="tables" targetRuntime="MyBatis3"> <!-- 抑制生成註釋,因爲生成的註釋都是英文的,能夠不讓它生成 --> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 配置數據庫鏈接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.230.128:3306/p2padmin" userId="root" password="123456"> </jdbcConnection> <!-- 生成model類,targetPackage指定model類的包名, targetProject指定生成的model放在eclipse的哪一個工程下面--> <javaModelGenerator targetPackage="com.bjpowernode.p2p.admin.model" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="false" /> </javaModelGenerator> <!-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪一個工程下面 --> <sqlMapGenerator targetPackage="com.bjpowernode.p2p.admin.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成MyBatis的Mapper接口類文件,targetPackage指定Mapper接口類的包名, targetProject指定生成的Mapper接口放在eclipse的哪一個工程下面 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.bjpowernode.p2p.admin.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 數據庫表名及對應的Java模型類名 --> <table tableName="u_permission_info" domainObjectName="PermissionInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/> </context> </generatorConfiguration>
配置Maven運行
mybatis-generator:generate -e
Idea中的代碼調試
F7:在 Debug 模式下,進入下一步,若是當前行斷點是一個方法,則進入當前方法體內,若是該方法體還有方法,則不會進入該內嵌的方法中
F8:在 Debug 模式下,進入下一步,若是當前行斷點是一個方法,則不進入當前方法體內
F9:在 Debug 模式下,恢復程序運行,可是若是該斷點下面代碼還有斷點則停在下一個斷點上
Alt + F8:在 Debug 的狀態下,選中對象,彈出可輸入計算表達式調試框,查看該輸入內容的調試結果
查看所選對象的方法經常使用有三種方式:
選中對象後,使用快捷鍵 Alt + F8
選中對象後,拖動對象到 Watches
選中對象後,鼠標懸停在對象上 2 秒左右
Idea的搜索
類的搜索
在菜單欄的Navigate下的Class...
文件的搜索
在菜單欄的Navigate下的File...
所有搜索
在菜單欄的Edit-->Find--Find in path
在工具條最右側的搜索圖標按鈕,點擊打開;
連續按兩次Shift鍵;
上面全部的搜索框被調出來後,按esc鍵取消;
Postfix Completion
後綴自動完成:
fori
100.fori
sout
new User().sout 便可打印出user對象
nn
判斷多少不等於null, user.nn
return
user.return
查看類的方法和字段大綱
打開當前類,點擊左側的結構大綱便可查看;
查看類的方法調用層級
右鍵該方法,Find Usages 或者按快捷鍵:Alt + F7
Idea查看接口的實現類
點擊接口左側的綠色圓點, 出現的列表就是該接口被實現的類;
查看接口中方法的實現,也是點擊接口方法前面的綠色圓點; (快捷鍵:Ctrl+Alt+B)
Idea自動導入包
在使用idea開發java項目的時候,常常須要導入jdk或者是第三方類庫的類,咱們知道,在Idea中導入第三方的類,經過 Alt + Enter快捷鍵,可是這樣本身手工導入的話,很是麻煩,效率很低,Idea提供了更高效的方式;
在菜單欄File-->Settings-->Editor-->General-->Auto Import 下設置:
選項1,IntelliJ IDEA 將在咱們書寫代碼的時候自動幫咱們導入須要用到的包,可是對於那些同名的包,仍是須要手動 Alt + Enter 進行導入;
選項2,IntelliJ IDEA 將在咱們書寫代碼的時候自動幫咱們優化導入的包,好比自動去掉一些沒有用到的包;
Idea經常使用快捷鍵
Ctrl + Y 刪除光標所在行 或 刪除選中的行;
Ctrl + X 剪切光標所在行 或 剪切選擇內容;
Ctrl + F 在當前文件中進行文本查找
Ctrl + R 在當前文件中關進行關鍵詞替換;
Ctrl + C 複製
Ctrl + V 粘貼
Ctrl + Z 撤銷
Ctrl + G 在當前文件跳轉到指定的行
Ctrl + / 註釋光標所在行代碼,會根據當前不一樣文件類型使用不一樣的註釋符號;
Ctrl +Shift + / 多行代碼註釋;
Alt + Insert 代碼自動生成,如生成對象的 set / get 方法,構造方法,toString() 等;
Ctrl + Alt + L 格式化代碼,能夠對當前文件和整個包目錄使用;
Ctrl + Shift + / 代碼塊註釋;
Alt + Enter 導入引用的jar中的類;
ctrl +shift + alt +j 選中當前文件中的全部相同的詞或字符,可直接對其進行一次性所有修改;
Shift + F6 重構代碼,重命名等;
Shift + Tab 代碼往前縮進;
Ctrl + Alt + O 優化導入的類,清理無用的導入;
Ctrl + Shift + U 對選中的代碼進行大/小寫交替轉換;