如何系統(tǒng)有效的學習java ee
Java EE所涉及技術非常多,考慮到很多初學者的不懂得學習,因此,以下是學習啦小編分享給大家的學習java ee的方法的資料,希望可以幫到你!
學習java ee的方法
1 學習JSP/Servlet
Java EE最高版本目前是5.0版本。
在Java EE中,首先要學習JSP/Servlet(結合Tomcat、MySQL)技術,建議JSP1.2/2.X的知識都要掌握,畢竟現(xiàn)在很多的在用系統(tǒng)都還 是基于JSP1.2,學習JSP,還必須掌握一些外延技術,如:你還得掌握HTML基礎知識,最好再掌握些JavaScript(目前正火的AJAX技術 之一)、CSS的技術,而了解XML是必不可少的(至少描述性配置信息是通過XML來描述的)。在學習JSP/Servlet過程中,應該結合學習 JDBC、數(shù)據(jù)庫開發(fā)技術,畢竟絕大多數(shù)Java Web項目都是和數(shù)據(jù)庫緊密結合的。
2 學習數(shù)據(jù)庫開發(fā)技術
這里我想重點說一下數(shù)據(jù)庫開發(fā)技術,數(shù)據(jù)庫技術是做業(yè)務系統(tǒng)必備技能,Java Web開發(fā)人員最低程度都應該掌握SQL語句的使用!數(shù)據(jù)庫技術大體可分為DBA技術和數(shù)據(jù)庫開發(fā)技術,對于開發(fā)而言,應側重數(shù)據(jù)庫開發(fā)技術,而數(shù)據(jù)庫基 本操作,也是要掌握的。常用數(shù)據(jù)庫有DB2、Oracle、SQL Server、MySQL等,你可以結合實際需要,選擇一種數(shù)據(jù)庫,并花大力氣掌握其開發(fā)技術。
記住,學習數(shù)據(jù)庫開發(fā)技術和學習Java EE,是相對獨立的,你可以在學習JSP/Servlet的同時,學習數(shù)據(jù)庫開發(fā)技術(如SQL語句等),或者先學數(shù)據(jù)庫開發(fā)技術,之后再學習JSP/Servlet。
3 學習Java EE其它開發(fā)技術
再往后,可以學習一些EJB的知識,目前EJB最新版本是3.0,其和前面的2.X版本相比,有較大不同,考慮到目前EJB 2.X還有很大的應用市場,建議結合學習EJB 2.X/3.0。在學習EJB過程中,應同時掌握一種企業(yè)級應用服務器的使用(如 WebSphere、Weblogic、Sun Applcation Server或JBOSS等,目前Sun Applcation Server 9.X和JBOSS都可支持EJB 3.0)。
之后的學習中,再逐漸擴展到其他Java EE技術。
學習java 的理由
1、實用性
James Gosling將Java描述為“藍領”的程序設計語言。它能使開發(fā)者花最小的代價完成工作,同時還能使得開發(fā)者在一段時間之后,還能繼續(xù)完成別人的(甚至自己的)代碼并且明白其中的意思。當然,你也可以編寫可讀性差的代碼,就像你在其他語言中能做的一樣,但是使用良好的編碼風格能夠讓它比其他許多語言都有更好的可讀性。
2. 向下兼容
Sun公司和之后的Oracle(甲骨文)公司在確保一個版本的Java代碼能夠正常地在新的版本運行上做出了很多努力。雖然事情并不總是這樣(如JavaSE1.4中的斷言和JavaSE5中的枚舉)并且有時不向下兼容的做法能夠獲得更好的實現(xiàn)(如:泛型),但向下兼容對開發(fā)者來說依然是一個引人注目的特性。沒有比為了能在新版本的平臺上運行代碼而修改舊版本中的正常代碼更糟糕的事情了。這簡直是浪費時間。
3. 可擴展性/性能/可靠性
在超過20年和每年數(shù)以千計的開發(fā)者的推動和發(fā)展,Java已經(jīng)成為了一個堅實的平臺,可以趕上甚至超過本地代碼的水準(多虧了JVM使用了動態(tài)而非靜態(tài)代碼解析的一些優(yōu)化)。當談及可擴展性,看看使用Java語言的一些大型企業(yè):Twitter(拋棄了JVM的Ruby-on-Rails,因為它不再能夠擴展),Spotify,F(xiàn)acebook,Scalesforce,eBay,當然還有Oracle。Hadoop,Cassandra和Spark,大數(shù)據(jù)工程的基礎框架,無不使用Java或者Scala并且在JVM虛擬機上運行的。如果你想要良好的拓展性和性能,Java和JVM是最好的選擇。
4. 保鮮度
對我來說這是最重要的一條。查看TIOBE統(tǒng)計圖能夠發(fā)現(xiàn),2014年10月份開始,Java的受歡迎程度有了顯著的提升,這剛好是在JDK8發(fā)行之后。JDK8對Java開發(fā)者來來說有了顯著的變化,它引入了Lambda表達式和Stream API。突然間Java開發(fā)者能夠在不用學習一整套新語言(如Scala)的情況下以一個更加有效的方式進行開發(fā)。這些特點也使它有可能更簡單地利用多核/多處理器的機器,而不必寫很多復雜的和潛在的容易出錯的多線程代碼。隨著Jigsaw工程在為JDK 9的發(fā)布而啟動, 我們會看到模塊化使大企業(yè)應用程序更容易建立、部署和維護。同時在JDK10中,對于發(fā)展新的語言特性的計劃已經(jīng)在進行中了,比如值的類型等等。
高效Java編程工具
1、集成開發(fā)環(huán)境
Eclipse是最有名也最廣泛使用的Java集成開發(fā)環(huán)境(IDE),允許開發(fā)者結合語言支持和其他功能到任何的默認包中,而且Eclipse市場有許多定制和擴展的插件。
IntelliJ已經(jīng)引起了開發(fā)者的“追捧”,甚至比Eclipse還受寵,有免費版和專業(yè)版。[IntelliJ](http://www.javacodegeeks.com/tutorials/java-tutorials/core-java-tutorials/#IntelliJIDEA)為眾多Java EE框架提供了針對框架的編碼幫助和提升生產(chǎn)效率的功能,還有大多數(shù)應用服務器的部署工具。
NetBeans的也屬于IDE類,允許開發(fā)者快速、簡便地開發(fā)桌面應用、移動應用和Web應用。NetBeans是免費開源的,還擁有全球性的用戶和開發(fā)者社區(qū)。
JDeveloper是Oracle提供的一個免費的集成開發(fā)環(huán)境,它為Oracle融合中間件和融合應用產(chǎn)品提供完整的端到端開發(fā),支持整個開發(fā)生命周期。
2、測試
JUnit是一個Java語言的單元測試框架,用于編寫和運行可重復的測試。它為測試預期結果提供斷言,為共享的常用測試數(shù)據(jù)提供測試裝置(test fixtures),以及運行測試的測試者(test runners)。可以在這里看一下JUnit的教程。
TestNG是受到了JUnit的啟發(fā)開發(fā)而成,但同時還具有一些新功能,所以相對而言,TestNG更加強大也更便于使用,如注解(annotations)、靈活的測試配置、數(shù)據(jù)驅(qū)動的測試和參數(shù)支持,以及強大的執(zhí)行模型。它涵蓋了單元測試、功能、端到端、集成測試,支持各種工具和插件(Eclipse、IDEA、Maven等)。具體內(nèi)容可以參考分別使用 Maven Failsafe 與 TestNG 進行單元測試與集成測試的文章。
Mockito是一個mocking框架,幫助開發(fā)者編寫具有簡潔API的精美測試。其測試的可讀性很好,并能產(chǎn)生清晰的驗證錯誤。使用Mockito還能在執(zhí)行后可以對交互進行問詢。Mocks是透明的,所以開發(fā)者可以專注于測試選定的行為。更多詳情可以參考mockito的相關文章。
Arquillian是一個Java和JVM的測試平臺,主要側重于集成和功能測試。它去掉了單元測試,重點關注真正實時環(huán)境下的程序代碼的相互作用。Arquillian為測試配備了容器生命周期管理和典型測試精選。
3、集成
Apache Maven是一個非常著名的軟件項目管理和綜合工具?;陧椖繉ο竽P?POM)的概念,它的信息中心管理著項目的構建、報告和文檔。Maven提供了一個統(tǒng)一的構建系統(tǒng)、項目信息和最佳的開發(fā)實踐指導,并且支持新功能的透明遷移。
Gradle是一個開源的自動化構建系統(tǒng)。Gradle可以自動構建、測試、發(fā)布、部署,還有多種軟件包或其他類型項目,如生成靜態(tài)網(wǎng)站。Gradle結合了Ant的能力和靈活性,以及Maven的依賴管理和約定,形成了一種高效的構建方式。
Apache Ant是一個開源的Apache項目,經(jīng)Apache軟件許可發(fā)布。它由多種內(nèi)置任務而成,允許開發(fā)者編寫、裝配、測試和運行java應用程序。它的特點是高度靈活,不會嚴格限制Java項目的編碼慣例或目錄布局。
Apache Ivy是一種流行的依賴管理工具,注重靈活性和簡單性。它是Apache Ant項目的一個子項目,而Ivy用來解決項目依賴項。外部的XML文件定義項目依賴項,并列出構建項目的所需資源。然后Ivy從artifact 存儲庫(artifact repository)中下載資源,它具有良好的靈活性和可配置性。Apache Ivy 是由Apache Apache Ant集成的,因此將使Apache Maven的依賴管理優(yōu)勢也帶到Apache Ant構建文件中,為那些已經(jīng)使用Apache Ant且不想遷移到Apache Maven的開發(fā)者提供了便利。
4、應用服務器
Apache Tomcat是一個開源的Web服務器和Servlet容器,由Apache軟件基金會(ASF)開發(fā)。它實現(xiàn)了幾個Java EE規(guī)范,包括Java Servlet、JavaServer Pages(JSP)、Java EL和WebSocket,提供了一個可以運行Java代碼的HTTP Web服務器環(huán)境。想要了解更多請。
WildFly,其前身是JBoss AS或Jboss,是一個由Jboss開發(fā)的應用服務器,現(xiàn)在由紅帽在開發(fā)維護。它是用Java編寫的,并且實現(xiàn)了Java平臺和企業(yè)版(Java EE)規(guī)范。WildFly是可以在多個平臺上運行的免費開源工具。
GlassFish是由Sun Microsystems的Java EE平臺起步,現(xiàn)在由Oracle公司贊助的開源應用服務器項目。支持的版本叫做Oracle GlassFish應用服務器。GlassFish是免費軟件,經(jīng)兩個免費的軟件許可證批準:通用開發(fā)與發(fā)布許可(CDDL)和GNU通用公共許可證(GPL)。
Oracle WebLogic服務器是一個Java EE應用服務器,目前由Oracle公司開發(fā),用于構建和部署企業(yè)應用Java EE,支持降低運營成本、提高性能、增強可擴展性和支持Oracle應用組合等的新特性。
5、Web應用測試
Apache JMeter是開源的Apache項目,實際上是一個專為負載功能測試和性能測試的Java應用。它最初的設計是用于Web應用,但現(xiàn)在已擴展到其他測試功能。它可以測試靜態(tài)和動態(tài)資源性能,模擬一個或多個服務器負載來測試它的強度或者分析不同負載類型下的整體性能??梢圆榭搓P于Jmeter的。
SoapUI是一個免費的開源跨平臺的功能測試解決方案。它提供了一個圖形界面和企業(yè)級功能,允許創(chuàng)建和執(zhí)行自動化功能、回歸、符合性和負載測試。SoapUI在一個測試環(huán)境下提供了完整的測試覆蓋率,而且支持所有的標準協(xié)議和技術。
6、質(zhì)量分析
SonarQube是一個開源的平臺,現(xiàn)已成為代碼質(zhì)量管理系統(tǒng)的世界領先者,并且因代碼質(zhì)量的持續(xù)檢查為眾人所知。除了Java外,它還支持大多數(shù)的語言,而且可以用作Android開發(fā),它集成了大多數(shù)的持續(xù)集成工具。SonarQube會為重復代碼、編碼標準、單元測試、代碼覆蓋、復雜代碼、潛在錯誤、注釋、設計和架構而產(chǎn)生報告。
FindBugs也是開源的工具,在Lesser GNU Public license許可下發(fā)布。它運行在Java字節(jié)碼上而不是源代碼,可以識別和確定潛在錯誤的嚴重程度,如空指針引用、無限遞歸循環(huán)、Java庫和死鎖的錯誤使用。同時,它還可以作為Eclipse、NetBeans,IntelliJ IDEA的插件??梢詤⒖糉indBugs Eclipse實例。
PMD是一個源代碼分析器。它可以檢測到常見的編程錯誤,如未使用的變量、空的catch塊、不必要的對象創(chuàng)建等等。它支持除了包括Java的大多數(shù)語言,還包含CPD、復制粘貼探測器。
Checkstyle的是一個開發(fā)工具,可以幫助程序員堅持按編碼標準來編寫Java代碼,會自動啟動Java代碼檢查。它的配置性很強,能支持幾乎任何的編碼標準。
7、版本控制
Apache Subversion是眾所周知的SVN工具,是一個軟件版本和版本控制系統(tǒng),在一個開源許可下發(fā)布。目前,它是由一個Apache軟件基金會的項目開發(fā),也是全球性開發(fā)者和用戶社區(qū)的一部分。
Git是一個免費開源的分布式版本控制系統(tǒng),能夠提高大小事務的速度和效率。相對于其他的配置管理工具,Git的特色在于提供廉價的局部分支、便利的暫存區(qū)和多個工作流。每個Git工作目錄是一個完整的版本庫,有完整歷史和完整版本的跟蹤能力、獨立的網(wǎng)絡接入或中央服務器。可以查看。
8、持續(xù)集成
Jenkins是一個屢獲殊榮的應用程序,能夠監(jiān)視重復的工作,從建立一個軟件項目到由cron運行的作業(yè)。它的基本功能是不斷建立和測試軟件項目,使得開發(fā)者能更容易地將變更集成到項目中,使用戶更容易獲得新的構建。Jenkins還可以監(jiān)控外部運行任務的執(zhí)行,如cron jobs,即使是運行在遠程計算機上的任務。
Apache Continuum是一個企業(yè)級持續(xù)集成服務器。提供的特性包括:自動構建、發(fā)布管理、基于角色的權限管理,以及能與其它流行構建工具和源代碼管理系統(tǒng)相集成。
Hudson是一個用Java編寫的持續(xù)集成(CI)工具,在應用服務器上運行。它支持各種SCM工具,如Subversion、Git,可以執(zhí)行Apache Ant和Apache Maven項目,以及任意shell腳本和Windows批處理命令。它監(jiān)視重復任務的執(zhí)行,如建立一個軟件項目或由cron運行的作業(yè)。
9、Java 應用分析
在為分析Java應用開發(fā)最創(chuàng)新的智能工具方面,YourKit Java分析器是技術的領頭羊。你可以在CPU和內(nèi)存分析上都使用YourKit解決方案,還可以以最大生產(chǎn)率和零開銷來分析大型應用。同時,Java分析器還有幾個剛提出的分析創(chuàng)新,為其在各大小型企業(yè)的專業(yè)Java開發(fā)者獲得了當之無愧的人氣。
JProfiler是商業(yè)許可的Java分析工具,對于分析性能瓶頸、內(nèi)存泄漏、CPU負載和解決線程問題等方面非常有效,它支持在同一臺機器或遠程機器上進行分析。用戶可以看到活躍的總字節(jié)、實例、線程、類和垃圾回收器活動的可視化表示。它可以作為一個獨立應用使用,也可以作為Eclipse軟件開發(fā)環(huán)境的插件。
10、代碼覆蓋工具
JaCoco是衡量和報告Java代碼覆蓋率的一個開源工具包。它是由Eclipse公共許可協(xié)議許可,是目前唯一能支持Java 8的字節(jié)代碼覆蓋工具。
Clover是一個商業(yè)的代碼覆蓋工具,它提供的指標可以讓程序員更好地平衡編程和測試。它在IDE或你的持續(xù)集成系統(tǒng)下運行,還包括能加快測試速度的測試優(yōu)化。
猜你喜歡: