學(xué)習(xí)啦>學(xué)習(xí)方法>通用學(xué)習(xí)方法>學(xué)習(xí)經(jīng)驗(yàn)>

如何系統(tǒng)有效的學(xué)習(xí)java ee

時(shí)間: 欣怡1112 分享

  Java EE所涉及技術(shù)非常多,考慮到很多初學(xué)者的不懂得學(xué)習(xí),因此,以下是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)java ee的方法的資料,希望可以幫到你!

  學(xué)習(xí)java ee的方法

  1 學(xué)習(xí)JSP/Servlet

  Java EE最高版本目前是5.0版本。

  在Java EE中,首先要學(xué)習(xí)JSP/Servlet(結(jié)合Tomcat、MySQL)技術(shù),建議JSP1.2/2.X的知識(shí)都要掌握,畢竟現(xiàn)在很多的在用系統(tǒng)都還 是基于JSP1.2,學(xué)習(xí)JSP,還必須掌握一些外延技術(shù),如:你還得掌握HTML基礎(chǔ)知識(shí),最好再掌握些JavaScript(目前正火的AJAX技術(shù) 之一)、CSS的技術(shù),而了解XML是必不可少的(至少描述性配置信息是通過(guò)XML來(lái)描述的)。在學(xué)習(xí)JSP/Servlet過(guò)程中,應(yīng)該結(jié)合學(xué)習(xí) JDBC、數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù),畢竟絕大多數(shù)Java Web項(xiàng)目都是和數(shù)據(jù)庫(kù)緊密結(jié)合的。

  2 學(xué)習(xí)數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)

  這里我想重點(diǎn)說(shuō)一下數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù),數(shù)據(jù)庫(kù)技術(shù)是做業(yè)務(wù)系統(tǒng)必備技能,Java Web開(kāi)發(fā)人員最低程度都應(yīng)該掌握SQL語(yǔ)句的使用!數(shù)據(jù)庫(kù)技術(shù)大體可分為DBA技術(shù)和數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù),對(duì)于開(kāi)發(fā)而言,應(yīng)側(cè)重?cái)?shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù),而數(shù)據(jù)庫(kù)基 本操作,也是要掌握的。常用數(shù)據(jù)庫(kù)有DB2、Oracle、SQL Server、MySQL等,你可以結(jié)合實(shí)際需要,選擇一種數(shù)據(jù)庫(kù),并花大力氣掌握其開(kāi)發(fā)技術(shù)。

  記住,學(xué)習(xí)數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)和學(xué)習(xí)Java EE,是相對(duì)獨(dú)立的,你可以在學(xué)習(xí)JSP/Servlet的同時(shí),學(xué)習(xí)數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)(如SQL語(yǔ)句等),或者先學(xué)數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù),之后再學(xué)習(xí)JSP/Servlet。

  3 學(xué)習(xí)Java EE其它開(kāi)發(fā)技術(shù)

  再往后,可以學(xué)習(xí)一些EJB的知識(shí),目前EJB最新版本是3.0,其和前面的2.X版本相比,有較大不同,考慮到目前EJB 2.X還有很大的應(yīng)用市場(chǎng),建議結(jié)合學(xué)習(xí)EJB 2.X/3.0。在學(xué)習(xí)EJB過(guò)程中,應(yīng)同時(shí)掌握一種企業(yè)級(jí)應(yīng)用服務(wù)器的使用(如 WebSphere、Weblogic、Sun Applcation Server或JBOSS等,目前Sun Applcation Server 9.X和JBOSS都可支持EJB 3.0)。

  之后的學(xué)習(xí)中,再逐漸擴(kuò)展到其他Java EE技術(shù)。

  學(xué)習(xí)java 的理由

  1、實(shí)用性

  James Gosling將Java描述為“藍(lán)領(lǐng)”的程序設(shè)計(jì)語(yǔ)言。它能使開(kāi)發(fā)者花最小的代價(jià)完成工作,同時(shí)還能使得開(kāi)發(fā)者在一段時(shí)間之后,還能繼續(xù)完成別人的(甚至自己的)代碼并且明白其中的意思。當(dāng)然,你也可以編寫(xiě)可讀性差的代碼,就像你在其他語(yǔ)言中能做的一樣,但是使用良好的編碼風(fēng)格能夠讓它比其他許多語(yǔ)言都有更好的可讀性。

  2. 向下兼容

  Sun公司和之后的Oracle(甲骨文)公司在確保一個(gè)版本的Java代碼能夠正常地在新的版本運(yùn)行上做出了很多努力。雖然事情并不總是這樣(如JavaSE1.4中的斷言和JavaSE5中的枚舉)并且有時(shí)不向下兼容的做法能夠獲得更好的實(shí)現(xiàn)(如:泛型),但向下兼容對(duì)開(kāi)發(fā)者來(lái)說(shuō)依然是一個(gè)引人注目的特性。沒(méi)有比為了能在新版本的平臺(tái)上運(yùn)行代碼而修改舊版本中的正常代碼更糟糕的事情了。這簡(jiǎn)直是浪費(fèi)時(shí)間。

  3. 可擴(kuò)展性/性能/可靠性

  在超過(guò)20年和每年數(shù)以千計(jì)的開(kāi)發(fā)者的推動(dòng)和發(fā)展,Java已經(jīng)成為了一個(gè)堅(jiān)實(shí)的平臺(tái),可以趕上甚至超過(guò)本地代碼的水準(zhǔn)(多虧了JVM使用了動(dòng)態(tài)而非靜態(tài)代碼解析的一些優(yōu)化)。當(dāng)談及可擴(kuò)展性,看看使用Java語(yǔ)言的一些大型企業(yè):Twitter(拋棄了JVM的Ruby-on-Rails,因?yàn)樗辉倌軌驍U(kuò)展),Spotify,F(xiàn)acebook,Scalesforce,eBay,當(dāng)然還有Oracle。Hadoop,Cassandra和Spark,大數(shù)據(jù)工程的基礎(chǔ)框架,無(wú)不使用Java或者Scala并且在JVM虛擬機(jī)上運(yùn)行的。如果你想要良好的拓展性和性能,Java和JVM是最好的選擇。

  4. 保鮮度

  對(duì)我來(lái)說(shuō)這是最重要的一條。查看TIOBE統(tǒng)計(jì)圖能夠發(fā)現(xiàn),2014年10月份開(kāi)始,Java的受歡迎程度有了顯著的提升,這剛好是在JDK8發(fā)行之后。JDK8對(duì)Java開(kāi)發(fā)者來(lái)來(lái)說(shuō)有了顯著的變化,它引入了Lambda表達(dá)式和Stream API。突然間Java開(kāi)發(fā)者能夠在不用學(xué)習(xí)一整套新語(yǔ)言(如Scala)的情況下以一個(gè)更加有效的方式進(jìn)行開(kāi)發(fā)。這些特點(diǎn)也使它有可能更簡(jiǎn)單地利用多核/多處理器的機(jī)器,而不必寫(xiě)很多復(fù)雜的和潛在的容易出錯(cuò)的多線程代碼。隨著Jigsaw工程在為JDK 9的發(fā)布而啟動(dòng), 我們會(huì)看到模塊化使大企業(yè)應(yīng)用程序更容易建立、部署和維護(hù)。同時(shí)在JDK10中,對(duì)于發(fā)展新的語(yǔ)言特性的計(jì)劃已經(jīng)在進(jìn)行中了,比如值的類型等等。

  高效Java編程工具

  1、集成開(kāi)發(fā)環(huán)境

  Eclipse是最有名也最廣泛使用的Java集成開(kāi)發(fā)環(huán)境(IDE),允許開(kāi)發(fā)者結(jié)合語(yǔ)言支持和其他功能到任何的默認(rèn)包中,而且Eclipse市場(chǎng)有許多定制和擴(kuò)展的插件。

  IntelliJ已經(jīng)引起了開(kāi)發(fā)者的“追捧”,甚至比Eclipse還受寵,有免費(fèi)版和專業(yè)版。[IntelliJ](http://www.javacodegeeks.com/tutorials/java-tutorials/core-java-tutorials/#IntelliJIDEA)為眾多Java EE框架提供了針對(duì)框架的編碼幫助和提升生產(chǎn)效率的功能,還有大多數(shù)應(yīng)用服務(wù)器的部署工具。

  NetBeans的也屬于IDE類,允許開(kāi)發(fā)者快速、簡(jiǎn)便地開(kāi)發(fā)桌面應(yīng)用、移動(dòng)應(yīng)用和Web應(yīng)用。NetBeans是免費(fèi)開(kāi)源的,還擁有全球性的用戶和開(kāi)發(fā)者社區(qū)。

  JDeveloper是Oracle提供的一個(gè)免費(fèi)的集成開(kāi)發(fā)環(huán)境,它為Oracle融合中間件和融合應(yīng)用產(chǎn)品提供完整的端到端開(kāi)發(fā),支持整個(gè)開(kāi)發(fā)生命周期。

  2、測(cè)試

  JUnit是一個(gè)Java語(yǔ)言的單元測(cè)試框架,用于編寫(xiě)和運(yùn)行可重復(fù)的測(cè)試。它為測(cè)試預(yù)期結(jié)果提供斷言,為共享的常用測(cè)試數(shù)據(jù)提供測(cè)試裝置(test fixtures),以及運(yùn)行測(cè)試的測(cè)試者(test runners)??梢栽谶@里看一下JUnit的教程。

  TestNG是受到了JUnit的啟發(fā)開(kāi)發(fā)而成,但同時(shí)還具有一些新功能,所以相對(duì)而言,TestNG更加強(qiáng)大也更便于使用,如注解(annotations)、靈活的測(cè)試配置、數(shù)據(jù)驅(qū)動(dòng)的測(cè)試和參數(shù)支持,以及強(qiáng)大的執(zhí)行模型。它涵蓋了單元測(cè)試、功能、端到端、集成測(cè)試,支持各種工具和插件(Eclipse、IDEA、Maven等)。具體內(nèi)容可以參考分別使用 Maven Failsafe 與 TestNG 進(jìn)行單元測(cè)試與集成測(cè)試的文章。

  Mockito是一個(gè)mocking框架,幫助開(kāi)發(fā)者編寫(xiě)具有簡(jiǎn)潔API的精美測(cè)試。其測(cè)試的可讀性很好,并能產(chǎn)生清晰的驗(yàn)證錯(cuò)誤。使用Mockito還能在執(zhí)行后可以對(duì)交互進(jìn)行問(wèn)詢。Mocks是透明的,所以開(kāi)發(fā)者可以專注于測(cè)試選定的行為。更多詳情可以參考mockito的相關(guān)文章。

  Arquillian是一個(gè)Java和JVM的測(cè)試平臺(tái),主要側(cè)重于集成和功能測(cè)試。它去掉了單元測(cè)試,重點(diǎn)關(guān)注真正實(shí)時(shí)環(huán)境下的程序代碼的相互作用。Arquillian為測(cè)試配備了容器生命周期管理和典型測(cè)試精選。

  3、集成

  Apache Maven是一個(gè)非常著名的軟件項(xiàng)目管理和綜合工具?;陧?xiàng)目對(duì)象模型(POM)的概念,它的信息中心管理著項(xiàng)目的構(gòu)建、報(bào)告和文檔。Maven提供了一個(gè)統(tǒng)一的構(gòu)建系統(tǒng)、項(xiàng)目信息和最佳的開(kāi)發(fā)實(shí)踐指導(dǎo),并且支持新功能的透明遷移。

  Gradle是一個(gè)開(kāi)源的自動(dòng)化構(gòu)建系統(tǒng)。Gradle可以自動(dòng)構(gòu)建、測(cè)試、發(fā)布、部署,還有多種軟件包或其他類型項(xiàng)目,如生成靜態(tài)網(wǎng)站。Gradle結(jié)合了Ant的能力和靈活性,以及Maven的依賴管理和約定,形成了一種高效的構(gòu)建方式。

  Apache Ant是一個(gè)開(kāi)源的Apache項(xiàng)目,經(jīng)Apache軟件許可發(fā)布。它由多種內(nèi)置任務(wù)而成,允許開(kāi)發(fā)者編寫(xiě)、裝配、測(cè)試和運(yùn)行java應(yīng)用程序。它的特點(diǎn)是高度靈活,不會(huì)嚴(yán)格限制Java項(xiàng)目的編碼慣例或目錄布局。

  Apache Ivy是一種流行的依賴管理工具,注重靈活性和簡(jiǎn)單性。它是Apache Ant項(xiàng)目的一個(gè)子項(xiàng)目,而Ivy用來(lái)解決項(xiàng)目依賴項(xiàng)。外部的XML文件定義項(xiàng)目依賴項(xiàng),并列出構(gòu)建項(xiàng)目的所需資源。然后Ivy從artifact 存儲(chǔ)庫(kù)(artifact repository)中下載資源,它具有良好的靈活性和可配置性。Apache Ivy 是由Apache Apache Ant集成的,因此將使Apache Maven的依賴管理優(yōu)勢(shì)也帶到Apache Ant構(gòu)建文件中,為那些已經(jīng)使用Apache Ant且不想遷移到Apache Maven的開(kāi)發(fā)者提供了便利。

  4、應(yīng)用服務(wù)器

  Apache Tomcat是一個(gè)開(kāi)源的Web服務(wù)器和Servlet容器,由Apache軟件基金會(huì)(ASF)開(kāi)發(fā)。它實(shí)現(xiàn)了幾個(gè)Java EE規(guī)范,包括Java Servlet、JavaServer Pages(JSP)、Java EL和WebSocket,提供了一個(gè)可以運(yùn)行Java代碼的HTTP Web服務(wù)器環(huán)境。想要了解更多請(qǐng)。

  WildFly,其前身是JBoss AS或Jboss,是一個(gè)由Jboss開(kāi)發(fā)的應(yīng)用服務(wù)器,現(xiàn)在由紅帽在開(kāi)發(fā)維護(hù)。它是用Java編寫(xiě)的,并且實(shí)現(xiàn)了Java平臺(tái)和企業(yè)版(Java EE)規(guī)范。WildFly是可以在多個(gè)平臺(tái)上運(yùn)行的免費(fèi)開(kāi)源工具。

  GlassFish是由Sun Microsystems的Java EE平臺(tái)起步,現(xiàn)在由Oracle公司贊助的開(kāi)源應(yīng)用服務(wù)器項(xiàng)目。支持的版本叫做Oracle GlassFish應(yīng)用服務(wù)器。GlassFish是免費(fèi)軟件,經(jīng)兩個(gè)免費(fèi)的軟件許可證批準(zhǔn):通用開(kāi)發(fā)與發(fā)布許可(CDDL)和GNU通用公共許可證(GPL)。

  Oracle WebLogic服務(wù)器是一個(gè)Java EE應(yīng)用服務(wù)器,目前由Oracle公司開(kāi)發(fā),用于構(gòu)建和部署企業(yè)應(yīng)用Java EE,支持降低運(yùn)營(yíng)成本、提高性能、增強(qiáng)可擴(kuò)展性和支持Oracle應(yīng)用組合等的新特性。

  5、Web應(yīng)用測(cè)試

  Apache JMeter是開(kāi)源的Apache項(xiàng)目,實(shí)際上是一個(gè)專為負(fù)載功能測(cè)試和性能測(cè)試的Java應(yīng)用。它最初的設(shè)計(jì)是用于Web應(yīng)用,但現(xiàn)在已擴(kuò)展到其他測(cè)試功能。它可以測(cè)試靜態(tài)和動(dòng)態(tài)資源性能,模擬一個(gè)或多個(gè)服務(wù)器負(fù)載來(lái)測(cè)試它的強(qiáng)度或者分析不同負(fù)載類型下的整體性能??梢圆榭搓P(guān)于Jmeter的。

  SoapUI是一個(gè)免費(fèi)的開(kāi)源跨平臺(tái)的功能測(cè)試解決方案。它提供了一個(gè)圖形界面和企業(yè)級(jí)功能,允許創(chuàng)建和執(zhí)行自動(dòng)化功能、回歸、符合性和負(fù)載測(cè)試。SoapUI在一個(gè)測(cè)試環(huán)境下提供了完整的測(cè)試覆蓋率,而且支持所有的標(biāo)準(zhǔn)協(xié)議和技術(shù)。

  6、質(zhì)量分析

  SonarQube是一個(gè)開(kāi)源的平臺(tái),現(xiàn)已成為代碼質(zhì)量管理系統(tǒng)的世界領(lǐng)先者,并且因代碼質(zhì)量的持續(xù)檢查為眾人所知。除了Java外,它還支持大多數(shù)的語(yǔ)言,而且可以用作Android開(kāi)發(fā),它集成了大多數(shù)的持續(xù)集成工具。SonarQube會(huì)為重復(fù)代碼、編碼標(biāo)準(zhǔn)、單元測(cè)試、代碼覆蓋、復(fù)雜代碼、潛在錯(cuò)誤、注釋、設(shè)計(jì)和架構(gòu)而產(chǎn)生報(bào)告。

  FindBugs也是開(kāi)源的工具,在Lesser GNU Public license許可下發(fā)布。它運(yùn)行在Java字節(jié)碼上而不是源代碼,可以識(shí)別和確定潛在錯(cuò)誤的嚴(yán)重程度,如空指針引用、無(wú)限遞歸循環(huán)、Java庫(kù)和死鎖的錯(cuò)誤使用。同時(shí),它還可以作為Eclipse、NetBeans,IntelliJ IDEA的插件。可以參考FindBugs Eclipse實(shí)例。

  PMD是一個(gè)源代碼分析器。它可以檢測(cè)到常見(jiàn)的編程錯(cuò)誤,如未使用的變量、空的catch塊、不必要的對(duì)象創(chuàng)建等等。它支持除了包括Java的大多數(shù)語(yǔ)言,還包含CPD、復(fù)制粘貼探測(cè)器。

  Checkstyle的是一個(gè)開(kāi)發(fā)工具,可以幫助程序員堅(jiān)持按編碼標(biāo)準(zhǔn)來(lái)編寫(xiě)Java代碼,會(huì)自動(dòng)啟動(dòng)Java代碼檢查。它的配置性很強(qiáng),能支持幾乎任何的編碼標(biāo)準(zhǔn)。

  7、版本控制

  Apache Subversion是眾所周知的SVN工具,是一個(gè)軟件版本和版本控制系統(tǒng),在一個(gè)開(kāi)源許可下發(fā)布。目前,它是由一個(gè)Apache軟件基金會(huì)的項(xiàng)目開(kāi)發(fā),也是全球性開(kāi)發(fā)者和用戶社區(qū)的一部分。

  Git是一個(gè)免費(fèi)開(kāi)源的分布式版本控制系統(tǒng),能夠提高大小事務(wù)的速度和效率。相對(duì)于其他的配置管理工具,Git的特色在于提供廉價(jià)的局部分支、便利的暫存區(qū)和多個(gè)工作流。每個(gè)Git工作目錄是一個(gè)完整的版本庫(kù),有完整歷史和完整版本的跟蹤能力、獨(dú)立的網(wǎng)絡(luò)接入或中央服務(wù)器??梢圆榭?。

  8、持續(xù)集成

  Jenkins是一個(gè)屢獲殊榮的應(yīng)用程序,能夠監(jiān)視重復(fù)的工作,從建立一個(gè)軟件項(xiàng)目到由cron運(yùn)行的作業(yè)。它的基本功能是不斷建立和測(cè)試軟件項(xiàng)目,使得開(kāi)發(fā)者能更容易地將變更集成到項(xiàng)目中,使用戶更容易獲得新的構(gòu)建。Jenkins還可以監(jiān)控外部運(yùn)行任務(wù)的執(zhí)行,如cron jobs,即使是運(yùn)行在遠(yuǎn)程計(jì)算機(jī)上的任務(wù)。

  Apache Continuum是一個(gè)企業(yè)級(jí)持續(xù)集成服務(wù)器。提供的特性包括:自動(dòng)構(gòu)建、發(fā)布管理、基于角色的權(quán)限管理,以及能與其它流行構(gòu)建工具和源代碼管理系統(tǒng)相集成。

  Hudson是一個(gè)用Java編寫(xiě)的持續(xù)集成(CI)工具,在應(yīng)用服務(wù)器上運(yùn)行。它支持各種SCM工具,如Subversion、Git,可以執(zhí)行Apache Ant和Apache Maven項(xiàng)目,以及任意shell腳本和Windows批處理命令。它監(jiān)視重復(fù)任務(wù)的執(zhí)行,如建立一個(gè)軟件項(xiàng)目或由cron運(yùn)行的作業(yè)。

  9、Java 應(yīng)用分析

  在為分析Java應(yīng)用開(kāi)發(fā)最創(chuàng)新的智能工具方面,YourKit Java分析器是技術(shù)的領(lǐng)頭羊。你可以在CPU和內(nèi)存分析上都使用YourKit解決方案,還可以以最大生產(chǎn)率和零開(kāi)銷來(lái)分析大型應(yīng)用。同時(shí),Java分析器還有幾個(gè)剛提出的分析創(chuàng)新,為其在各大小型企業(yè)的專業(yè)Java開(kāi)發(fā)者獲得了當(dāng)之無(wú)愧的人氣。

  JProfiler是商業(yè)許可的Java分析工具,對(duì)于分析性能瓶頸、內(nèi)存泄漏、CPU負(fù)載和解決線程問(wèn)題等方面非常有效,它支持在同一臺(tái)機(jī)器或遠(yuǎn)程機(jī)器上進(jìn)行分析。用戶可以看到活躍的總字節(jié)、實(shí)例、線程、類和垃圾回收器活動(dòng)的可視化表示。它可以作為一個(gè)獨(dú)立應(yīng)用使用,也可以作為Eclipse軟件開(kāi)發(fā)環(huán)境的插件。

  10、代碼覆蓋工具

  JaCoco是衡量和報(bào)告Java代碼覆蓋率的一個(gè)開(kāi)源工具包。它是由Eclipse公共許可協(xié)議許可,是目前唯一能支持Java 8的字節(jié)代碼覆蓋工具。

  Clover是一個(gè)商業(yè)的代碼覆蓋工具,它提供的指標(biāo)可以讓程序員更好地平衡編程和測(cè)試。它在IDE或你的持續(xù)集成系統(tǒng)下運(yùn)行,還包括能加快測(cè)試速度的測(cè)試優(yōu)化。

猜你喜歡:

1.Java SE和Java EE的區(qū)別

2.學(xué)習(xí)編程的最好方法有哪些

3.如何才能系統(tǒng)有效的學(xué)習(xí)asp

4.如何系統(tǒng)有效的學(xué)習(xí)java api

5.如何系統(tǒng)地學(xué)習(xí)javascript知識(shí)

3744054