由于Java開發(fā)涉及到比較多的領(lǐng)域,每個領(lǐng)域需要具備的知識結(jié)構(gòu)也是有所區(qū)別的,所以就需要根據(jù)領(lǐng)域進(jìn)行分別闡述。由于目前Java主要的應(yīng)用集中在Web開發(fā)、移動互聯(lián)開發(fā)和大數(shù)據(jù)開發(fā)三個領(lǐng)域,所以下面就從這三個領(lǐng)域進(jìn)行分別介紹。
Web開發(fā)領(lǐng)域在Web開發(fā)領(lǐng)域,Java的主要知識結(jié)構(gòu)包括三個部分,分別是Java基礎(chǔ)、Java分布式開發(fā)和Java企業(yè)級開發(fā)。Java基礎(chǔ)部分知識是所有方向都需要掌握的,也是學(xué)習(xí)Java的一個難點(diǎn),包括Java的面向?qū)ο蟾拍睢⒚嫦驅(qū)ο缶幊踢^程以及異常處理、IO、集合和多線程等內(nèi)容,基礎(chǔ)部分需要重點(diǎn)掌握的概念是封裝、繼承和多態(tài)(這部分細(xì)節(jié)可以參考我之前在頭條寫的文章)。
Java分布式開發(fā)是學(xué)習(xí)Web開發(fā)的重要階段,這個階段要了解分布式開發(fā)的基礎(chǔ),并采用分布式的方式完成功能的部署。Java的分布式開發(fā)可以從了解RMI、Hessian(可以跨語言使用)、Burlap(XML格式)、HttpInvoker、Web service這些方式開始。
看一下Hessian的實(shí)現(xiàn)過程:
Java的Web開發(fā)還需要學(xué)習(xí)一些前端的內(nèi)容,包括HTML、CSS以及JavaScript相關(guān)內(nèi)容,建議系統(tǒng)學(xué)習(xí)一下JavaScript語言。
Java的企業(yè)級Web開發(fā)有兩套方案,一套方案是JavaEE,另一套方案是輕量級框架,代表技術(shù)是Spring(SpringMVC、SpringBoot、SpringCloud等)方案。由于目前JavaEE已經(jīng)交給Eclipse基金會管理了,并更名為Jakarta EE,未來的發(fā)展還有待觀察,所以目前更多的程序員選擇Spring方案。
移動互聯(lián)領(lǐng)域移動互聯(lián)領(lǐng)域的開發(fā)除了要學(xué)習(xí)基礎(chǔ)的Java知識以外,還需要學(xué)習(xí)Android開發(fā)相關(guān)知識和云計(jì)算相關(guān)知識。
Android開發(fā)包括幾個大的內(nèi)容,包括Activity、Intent、Service、Fragment、SQLite等內(nèi)容,Android開發(fā)需要學(xué)習(xí)大量的圖形組件開發(fā)知識,以及對應(yīng)的事件處理方式,總的來說,Android部分的內(nèi)容雖然比較多,但是難點(diǎn)并不高。看一個簡單的例子:
移動互聯(lián)開發(fā)還需要學(xué)習(xí)一些云計(jì)算方面的知識,因?yàn)橐苿踊ヂ?lián)開發(fā)往往需要進(jìn)行云端部署。通常情況下,移動互聯(lián)開發(fā)也涉及到后端的服務(wù)開發(fā),但是往往后端服務(wù)開發(fā)都由Web開發(fā)人員來完成。Android的后端服務(wù)可以使用Java、Python、PHP等語言來開發(fā),可以根據(jù)具體的應(yīng)用場景進(jìn)行開發(fā)語言的選擇。
大數(shù)據(jù)領(lǐng)域目前Java在大數(shù)據(jù)領(lǐng)域也有廣泛的使用,大數(shù)據(jù)開發(fā)涉及到的內(nèi)容比較多,也有一定的難度。由于大數(shù)據(jù)開發(fā)有諸多崗位,不同的崗位有不同的知識結(jié)構(gòu)要求,總的來說集中在操作系統(tǒng)、大數(shù)據(jù)平臺、算法設(shè)計(jì)與實(shí)現(xiàn)等幾個部分。
大數(shù)據(jù)平臺目前主要以Hadoop和Spark的應(yīng)用比較多,Hadoop平臺有健全的生態(tài),以及大量成功的案例。但是,Hadoop平臺配置比較麻煩,需要一個系統(tǒng)的學(xué)習(xí)過程。
我做Java開發(fā)多年,目前主要的研究方向是大數(shù)據(jù)和人工智能,也在帶相關(guān)方向的研究生,我會陸續(xù)在頭條寫一些關(guān)于大數(shù)據(jù)方面的文章,感興趣的朋友可以關(guān)注我的頭條號,相信一定會有所收獲。
如果有大數(shù)據(jù)方面的問題,也可以咨詢我。
謝謝!