Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于PC、數據中心、游戲控制臺、科學超級計算機、移動電話和互聯網,同時擁有全球大的開發者專業社群。
給你java學習路線:html-css-js-jq-javase-數據庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
每個Java開發人員都需要一個代碼編輯器或IDE,可以幫助我們在編寫Java、使用類庫和框架的時候處理一些復雜、麻煩的場景,常見的就是糾錯。哪個編輯器或IDE適合你,取決于幾件事情:項目的性質,你在組織中的角色,團隊使用什么開發過程,程序員的水平和技能。 另外考慮的是團隊是否對工具進行了標準化,以及個人喜好。
常用于服務器端Java開發的三個IDE是IntelliJ IDEA,Eclipse和NetBeans。 然而,這些并不是唯一的選擇,也是時候也可以考慮一些輕量級的IDE。
下面通過在MacBook Pro上,對幾個開源項目使用IntelliJ IDEA Ultimate 2016.2,Eclipse Neon Java EE和NetBeans 8.1 Java EE對比一下三種IDE。
基本問題:你需要Java IDE幫你做什么事情
首先,你可能需要IDE支持JAVA 8,Scala,Groovy,其他JVM語言。還需要支持主要的應用服務器和流行的Web框架,包括Spring MVC,JSF,Struts,GWT,Play,Wicket,Grails和Vaadin。IDE應與開發團隊使用的任何構建和版本控制系統兼容,例如Ant,Maven和/或Gradle,以及Git,SVN,CVS,Mercurial或Bazaar。
更多一點的要求,包括能處理客戶端和數據庫層,支持嵌入式JavaScript,TypeScript,HTML,SQL,JavaServer Pages,Hibernate和Java Persistence API。
后,Java IDE應該可以讓你輕松編輯,構建,調試和測試系統。理想情況下,不僅可以完成智能代碼,還可以重構和做代碼質量檢測。如果你采用了測試驅動的開發模式,IDE還需要支持你的測試框架。如果你的團隊使用CI或BUG跟蹤系統,則IDE好連接到它們。如果你需要部署到容器和云上并進行調試,則IDE應該對此提供幫助。
IntelliJ IDEA
IntelliJ IDEA是首屈一指的Java IDE,兩個版本:mf的社區版和付費的終極版。
社區版可用于JVM和Android開發。支持Java,Kotlin,Groovy,Scala;Android;Maven,Gradle,SBT; Git,SVN,Mercurial和CVS。終極版用于Web和企業開發的除了Git,SVN,Mercurial和CVS之外,還支持Perforce,ClearCase和TFS;JavaScript和TypeScript;Java EE,Spring,GWT,Vaadin,Play,Grails等框架; 還有數據庫工具。
商業的終極版通過提高程序員的生產力來獲得收益。對于學生,老師和開放源代碼開發者而言都是mf的。
IntelliJ IDEA深入了解你的代碼,開發人員的人體工程學,有內置的開發人員工具,通曉數種語言的編程經驗。
IntelliJ IDEA用類似lint的方式對Java代碼做了靜態分析,顯示了一些警告和建議。 可以通過點擊它們展開這些,如下所示。在許多情況下,還可以獲得如何快速修復操作的選擇列表。
深入分析代碼
Java編輯器通常都會給出語法著色和簡單的代碼完成提示。除此之外,IDEA還能提供“智能完成”,這意味著它可以彈出在當前上下文中的可能的相關符號或操作列表,并且按你的個人使用頻率排列。更智能的是“鏈式完成”,它顯示的是適合當前上下文的方法或getter列表。IDEA還能幫助完成靜態成員或常量,import語句的導入。
Java代碼經常以字符串的形式,把其他語言包括在代碼中。IDEA可以將SQL,XPath,HTML,CSS或JavaScript代碼的片段注入Java字符串文字。重構的時候,IDEA也能充分考慮到這些表示其他語言的字符串。比如,如果在JPA語句中重命名一個類,IDEA也能更新相應的實體類和JPA表達式。
當重構一段代碼時,如果我們在其他地方也有這段代碼的拷貝的話,通常我們也需要對這些拷貝進行重構。 IDEA Ultimate(終極版)可以檢測重復和類似的片段,并一次性將同樣的的重構應用于這些拷貝。
IntelliJ IDEA在讀取代碼以及你輸入代碼的時候,就在分析這些代碼。它提供了一些指示來指出可能的問題。如果需要的話,也會列出快速修復這些問題的建議列表。
開發人員人體工程學
IntelliJ設計IDEA的時候,充分考慮了開發人員的工作流程中很重要的一點,也就是“在區域中”。上圖所示的項目工具窗口通過簡單的鼠標點擊就會從視圖中消失,你可以專注于代碼編輯器。編輯時要做的一切都具有鍵盤快捷鍵,包括在彈出窗口中顯示一些符號定義。學習捷徑確實需要時間和實踐當然不知道快捷方式,開發人員也可以輕松快速地學習使用IDEA。
IDEA的調試器設計非常友好。變量值在編輯窗口的右邊展示,靠近相對應的代碼。當時某個變量狀態改變的時候,會高亮顯示。
IDEA還集成了構建工具,單元測試的運行和覆蓋率檢查工具,以及內置的終端窗口。IntelliJ沒有自己的性能分析工具,但它通過插件來支持。這些包括由前IntelliJ主要開發人員創建的YourKit和VisualVM。IntelliJ IDEA為大多數的版本控制系統提供了接口,包括Git,SVN,Mercurial,CVS,Perforce和TFS。你可以在IDE中管理所有的代碼變化。IntelliJ IDEA還有個插件,可以把源代碼塊中的后一次更改將作為注釋顯示在編輯器窗口中。
IntelliJ IDEA支持所有主流的JVM應用服務器,并且可以在服務器中進行部署和調試,為Enterprise Java開發人員解決一個痛點。IDEA通過添加Docker工具窗口的插件來支持Docker。
多語言編程
IDEA已經擴展了針對Spring,Java EE,Grails,Play,Android,GWT,Vaadin,Thymeleaf,Android,React,AngularJS等框架的編碼協助。并非所有這些都是Java框架。除Java之外,IDEA也能理解許多其他語言,包括Groovy,Kotlin,Scala,JavaScript,TypeScript和SQL。如果您需要更多的話,目前有大約19種IntelliJ語言插件,包括R,Elm和D的插件。
Eclipse是流行的Java IDE,mf且開源。主要用Java編寫,但同時它的插件架構允許Eclipse以其他語言進行擴展。Eclipse起源于2001年,是一個IBM項目,目的是開發一個可移植的基于Java的IDE來替代基于Smalltalk的IBM Visual Age系列IDE。該項目的重要目標是針對Microsoft,要打敗微軟在工具市場上的領導地位,引領大家到Java開發上來,因此要做的事情是要吞噬微軟的市場,這就叫“Eclipse”。在中文里面,eclipse作名詞用就是“月蝕”,“日蝕”的意思。做動詞講,就是“使黯然失色”,“蒙蔽”的意思。
Java的可移植性幫助Eclipse成功實現跨平臺,Eclipse可以運行在Linux,Mac OS X,Solaris,Windows等。Java標準窗口小部件工具包(SWT)部分負責了Eclipse的外觀UI。同樣地,Eclipse也是它的性能依賴于JVM。早年因為硬件的低性能和JVM低版本,Eclipse有運行慢的名聲。但即使在今天,還是可以感覺到慢,特別是當裝了許多插件再進行更新的時候。
Eclipse中的一部分開銷是因為內置的增量編譯器。每當它加載一個文件,并且每當你更新你的代碼,它就會運行。其實總的來看,這是一個很好的事情,因為但你在輸入代碼的時候可以及時提供錯誤提示。
一個Eclipse Java項目在獨立于構建系統之外,維護著項目的內容模型。這個模型包含有關Java的類層次結構,引用和聲明的信息。通過這個模型可以支持多個編輯和導航助手以及大綱視圖。
Eclipse安裝的時候,通常需要安裝很多其他的包。包括一個小化的Eclipse SDK和必要的插件。安裝插件的時候很容易就會引入沖突,特別是新人。
編輯、瀏覽、重構、調試
第一次使用Eclipse的人可能會感到困惑。你的第一個任務是適應Eclipse的工作空間、透視圖和視圖的概念體系,這些概念又跟你安裝的插件有關。比如Java服務器開發,你可能使用Java,Java EE,瀏覽視圖;package explorer視圖;調試透視圖;團隊同步視角;Web工具;數據庫開發視圖;數據庫調試視圖。
插件生態系統是Eclipse的優勢之一,也是有時候造成問題的原因之一。Eclipse市場中目前包含1700多個解決方案,提供了數以千計的插件。這些插件可能會,也可能不會像期望的那樣工作(因為彼此的沖突)。盡管如此,Eclipse插件仍然支持超過100種編程語言和近200個應用程序開發框架。大多數主流的Java服務器也支持;如果你在Eclipse定義一個新服務器連接,你會看到一個供應商列表。下面你會發現大約30個應用服務器,包括9個版本的Apache Tomcat。商業公司傾向于把他們的產品在一起。例如在Red Hat JBoss中間件下面只有一個條目,包括WildFly,EAP服務器工具以及JBoss。
在Eclipse中,通常有不止一種方法來完成一個任務。例如,你可以使用package explorer或Java瀏覽視圖來瀏覽代碼。選擇哪個方式取決于你自己的體驗感受。
Java搜索支持查找Java包、類型、方法、字段。您還可以使用快速訪問搜索,并使用快速視圖來彈出類大綱之類的內容。
添加方法和生成類都有錯誤注釋和內容輔助支持(其實其他兩個IDE也支持)??梢詮拇a模板生成常見的代碼模式,而Eclipse可以自動生成和組織import語句。在Eclipse中,重構支持23個操作,從常見的重命名操作到更晦澀的轉換,從Martin Fowler的書中可以得到。重構不僅可以交互式地執行,還可以從重構腳本中進行。
Eclipse支持本地和遠程調試(其實其他兩個IDE也支持),假設您使用的是支持遠程調試的JVM。調試的過程是標準的方式:設置斷點,然后在調試視圖的一個選項卡中查看變量。(相關推薦:
)Eclipse提供了豐富的幫助和文檔。但經常會發現,文檔中的圖片可能并不匹配當前的版本,或者快捷鍵跟幫助中說的不太一樣。這可能是開源項目的常見問題:文檔會延遲幾個月甚至幾年才更新。Eclipse的生態系統非常龐大,所以在文檔及時性上問題不小。