更新時間:2019-11-21 09:25:28 來源:動力節(jié)點 瀏覽2793次
本文提供的成長路線圖將包含如何成為Java專家的最佳成長曲線。它回答了人們以下的問題:
1)Java開發(fā)人員應(yīng)該學(xué)習(xí)哪些技術(shù)?
2)哪些工具是最好的
3)Java開發(fā)人員需要學(xué)習(xí)哪些框架?
此路線圖的目的之一是讓人們既有學(xué)習(xí)效果,時間也盡可能地縮短。避免許多模棱兩可的方法,尤其是在涉及庫和工具時,堅持使用行業(yè)標準的工具和標準庫。
另外我們將路線圖描述得盡量簡潔,以便大多數(shù)人都可遵循,因此本文只包括了一些基本內(nèi)容。
我們會推出后續(xù)的JavaDeveloperRoadmap2.0,它會添加一些高級功能,例如JVM內(nèi)核解析,配置文件管理,模塊化,Cloud-Native云原生,容器(Docker和Kubernetes)等內(nèi)容。
順便說一句,不用完全了解此路線圖上的內(nèi)容也能成為優(yōu)秀的開發(fā)人員。如果你不想這樣做,當然也無需認真看待,但是可以將此路線圖做為起點來指導(dǎo)自己的學(xué)習(xí)。
讓我們開始吧。
現(xiàn)在,讓我們一起探討這個Java開發(fā)人員路線圖,并找出應(yīng)該學(xué)習(xí)哪些工具,框架,庫和API。
1.工具
路線圖中的工具部分由兩個主要部分組成。
首先,IDE是主要工具,它可以滿足程序員的所有需求,例如編譯,運行,調(diào)試,分析,測試,文件比較和代碼管理,重構(gòu)等。
第二部分是構(gòu)建工具,用它來構(gòu)建和部署項目,例如Maven和Gradle,它們?nèi)魏我粋€的設(shè)計都很棒。剛剛還想列出ANT,但它是針對舊項目的。對于所有新的Java項目,人們更喜歡Maven或Gradle。
2.JDKAPI
下一個要學(xué)習(xí)的重要事情是JDKAPI,對于大多數(shù)Java開發(fā)人員來說都非常重要。這是一個很大的部分,這就是為什么將其劃分為JavaCollections框架,JavaConcurrency,JavaIO和Java8API等核心領(lǐng)域的原因。
2.1Java集合框架
這是每個Java開發(fā)人員都應(yīng)該學(xué)習(xí)的重要JavaAPI之一。該API提供了Java中標準數(shù)據(jù)結(jié)構(gòu)的實現(xiàn),例如鏈表,集合,堆棧,隊列,哈希表,優(yōu)先級隊列等。
你至少應(yīng)該知道Java所有的日常用品一樣ArrayList,HashMap,HashSet,LinkedHashSet,TreeSet,等,它們各自有自己的屬性。例如,ArrayList是一個可以動態(tài)增長的數(shù)組,HashMap是哈希表的標準實現(xiàn),可以用來存儲鍵值對,而HashSet是一個不允許重復(fù)元素的集合實現(xiàn)。
2.2Java并發(fā)
在JavaCollections之后,Java中下一個關(guān)鍵API是關(guān)于多線程與并發(fā)的,如果您想成為一名合格的Java開發(fā)人員,則必須對JavaConcurrencyAPI有扎實的掌握。
不僅應(yīng)該深入了解諸如Thread,,Runnable對象鎖定和同步之類的基本概念,而且還應(yīng)該熟悉諸如死鎖,活動鎖,爭用條件以及如何處理它們的概念。
還應(yīng)該了解像Java5及以后的版本,例如添加同步先進的Java概念,CyclicBarrier,CountDownLatch,Phaser,CompleteableFuture等,連同F(xiàn)utures以及如何在Java中執(zhí)行異步操作。
2.3JavaIO
我采訪過100多個Java程序員,并且注意到一種模式:與JavaCollections和Java多線程API相比,大家對JavaIO和NIOAPI的掌握都很少。
如果想寫一個真實的核心Java應(yīng)用,需要用到如下類:File,InputStream,OutputStream,Reader,和Writer等,這是JavaIOAPI的核心。同樣的,你也需要了解ByteBuffer,F(xiàn)ileChannel,Selector,從java.nio的API和其他重要課程,如果你想編寫一個基于Socket的應(yīng)用程序。
關(guān)于講授JavaIO和JavaNIOAPI的資源并不多,但是CompleteJavaMasterclass是掌握此API的絕佳資源,你將從此API中找到很多基本概念。
2.4Java8功能
Java程序員應(yīng)該學(xué)習(xí)的下一個必要的API是Java8的功能,這些功能徹底改變了當今的Java編碼和編程方式。你需要知道如何用Lambda表達式,StreamAPI,Optional類和新的日期時間API。
現(xiàn)在,大多數(shù)庫都已停止支持低于Java8的版本,這意味著最好現(xiàn)在就學(xué)習(xí)Java8功能,而不是以后。Java8發(fā)布已經(jīng)5年了,我們沒有任何借口。
3.框架
Java有一個充滿活力的生態(tài)系統(tǒng),這意味著有很多框架和庫,幾乎可以用來做全部的事物。通常,不建議Java開發(fā)人員在熟悉Java之前就開始學(xué)習(xí)框架,但是Java開發(fā)人員應(yīng)該知道一些流行的框架和庫,比如Spring,SpringBoot,Hibernate,Log4j,JUnit。
3.1Spring框架
如果您想成為熟練的Java開發(fā)人員,強烈建議先學(xué)習(xí)SpringFramework。這是最流行的Java框架之一,過去五年來幾乎每個Java應(yīng)用程序都使用了該框架。
SpringFramework使開發(fā)人員能夠編寫干凈的代碼,通過依賴注入等功能,能夠輕松地測試和維護代碼。它還有豐富的用于大多數(shù)日常任務(wù)的API。
3.2Hibernate
我建議每個Java開發(fā)人員學(xué)習(xí)的第二個框架是Hibernate,它基于JPA(Java持久化API)。準確地說,Hibernate早于JPA,但是由于JPA是在Java中實現(xiàn)持久層的標準API,因此Hibernate也可以實現(xiàn)它。
因為大多數(shù)Java應(yīng)用程序都會與數(shù)據(jù)庫進行交互,并且使用Java而不使用Hibernate之類的適當框架來使用JDBC處理Java中的數(shù)據(jù)庫實在是令人難以調(diào)試。
Hibernate提供了一些基本功能,例如開箱即用的緩存和事務(wù),開發(fā)者有更多時間專注于應(yīng)用程序邏輯,而不是在應(yīng)用程序中實現(xiàn)緩存。這可以大大提高Java應(yīng)用程序的性能,這是我用Hibernate的最重要原因。
3.3SpringBoot
這是我建議每個Java開發(fā)人員在2019年后學(xué)習(xí)的另一個框架。
SpringBoot采用了Spring的簡化哲學(xué),讓Spring本身更加容易。就像Spring使創(chuàng)建Java應(yīng)用程序變得更容易一樣,SpringBoot使創(chuàng)建基于Spring的Java應(yīng)用程序變得更加容易。
自動配置之類的功能消除了與配置Spring應(yīng)用程序相關(guān)的部分很煩瑣。同樣,入門POM功能將常用的依賴項分組為簡單的可重用POM。
4測試
測試是Java開發(fā)人員的一項基本技能,尤其是單元測試,集成測試和自動化測試。每個Java開發(fā)人員都應(yīng)該熟悉JUnit和Mockito,這是兩種最受歡迎的單元測試和模擬庫。
如果知道這兩個并知道如何使用它們來有效地創(chuàng)建單元測試,那么與沒有它們相比,您將是一個更好的Java開發(fā)人員。
還存在更高級的庫,例如用于業(yè)務(wù)驅(qū)動測試的Cucumber,用于集成測試的RobotFramework,但是沒有替代品JUnit。你將始終需要JUnit。
對于模擬庫,您可以選擇PowerMock,Mockito和EasyMock等幾種選擇,但建議你學(xué)習(xí)Mockito,因為它是一個很棒的庫,并且許多Java開發(fā)人員和公司都在使用它。它正逐漸成為在Java中創(chuàng)建模擬對象的標準庫。
5.實用程序庫
Java的真正精彩在于其豐富的開源庫生態(tài)系統(tǒng)。你會發(fā)現(xiàn)庫在Java中幾乎可以完成所有工作,從日志記錄到機器學(xué)習(xí),從發(fā)送HTTP請求到解析JSON等等。
除此之外,Java還擁有諸如ApacheCommons和GoogleGuava之類的實用程序庫。這兩個庫有效地補充了JDK庫。
希望這份清單,可以幫助我們編寫更好的Java程序。
以上就是動力節(jié)點java學(xué)院小編針對“2019Java開發(fā)學(xué)習(xí)成長路線”的內(nèi)容進行的回答,希望對大家有所幫助,如果對于學(xué)習(xí)Java的學(xué)習(xí)計劃,怎么學(xué)才有效率,或者學(xué)完如果找工作的問題,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
零基礎(chǔ)自學(xué)java教程推薦
最新java視頻教程免費下載(從入門到精通):http://www.dabaquan.cn/video.html
零基礎(chǔ)java自學(xué)教程:http://www.dabaquan.cn/tutorial_java_se/
相關(guān)推薦
零基礎(chǔ)學(xué)Java編程,這些內(nèi)容你一定要知道
學(xué)習(xí)Java編程了解一些免費Java開發(fā)工具
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743