目前Java開(kāi)發(fā)主要集中在Web、大數(shù)據(jù)、移動(dòng)互聯(lián)網(wǎng)和人工智能等領(lǐng)域,當(dāng)然很多工具類軟件也采用Java進(jìn)行開(kāi)發(fā),比如Oracle很多系列產(chǎn)品都是使用Java開(kāi)發(fā)的。
轉(zhuǎn)行做Java開(kāi)發(fā)從Web方向入手是比較務(wù)實(shí)的選擇,原因是做Web開(kāi)發(fā)更容易上手,學(xué)習(xí)起來(lái)也并不困難。如果做Web方向的開(kāi)發(fā)則需要掌握如下的內(nèi)容:
對(duì)Java面向?qū)ο箝_(kāi)發(fā)過(guò)程有清晰明確的理解,從類的設(shè)計(jì)、對(duì)象的創(chuàng)建到方法的調(diào)用都能獨(dú)立完成代碼的編寫(xiě)。掌握封裝、繼承、多態(tài)以及其衍生的相關(guān)具體開(kāi)發(fā)內(nèi)容,理解Java的多線程概念。
會(huì)使用Mysql或Oracle數(shù)據(jù)庫(kù),做Web開(kāi)發(fā)需要頻繁與數(shù)據(jù)庫(kù)打交道,所以要熟練至少一個(gè)數(shù)據(jù)庫(kù)產(chǎn)品。能完成建庫(kù)、建表,能使用sql語(yǔ)句完成數(shù)據(jù)庫(kù)操作,能自己編寫(xiě)存儲(chǔ)過(guò)程語(yǔ)句(不需要太復(fù)雜),以及能獨(dú)立完成一部分?jǐn)?shù)據(jù)庫(kù)優(yōu)化操作。
能通過(guò)JDBC完成對(duì)數(shù)據(jù)庫(kù)的操作,清晰數(shù)據(jù)庫(kù)操作的步驟:驅(qū)動(dòng)程序加載、數(shù)據(jù)源的定義、建立連接對(duì)象(Connection)、創(chuàng)建容器、執(zhí)行Sql語(yǔ)句、遍歷結(jié)果集、關(guān)閉數(shù)據(jù)庫(kù)資源(結(jié)果集、容器、連接)。掌握DAO模式的編寫(xiě)規(guī)則,能獨(dú)立完成基于DAO模式的數(shù)據(jù)庫(kù)開(kāi)發(fā)。了解連接池在數(shù)據(jù)庫(kù)開(kāi)發(fā)中的作用,能在實(shí)際開(kāi)發(fā)中使用數(shù)據(jù)庫(kù)連接池管理連接對(duì)象。
清晰Java Web開(kāi)發(fā)的核心組件,了解Web開(kāi)發(fā)的三層結(jié)構(gòu)以及N層結(jié)構(gòu),清晰每一層的功能劃分,能獨(dú)立完成每一層的功能組件開(kāi)發(fā),并完成部署。了解Web Server的組成部分,了解其在Java Web開(kāi)發(fā)中所起到的作用。了解MVC框架,清晰MVC框架每一部分的功能劃分,知道該使用哪種技術(shù)完成具體的開(kāi)發(fā)任務(wù)。
熟悉一種開(kāi)源框架的使用,比如SpringMVC,了解框架在Web開(kāi)發(fā)中所起到的作用。能通過(guò)使用框架完成Web開(kāi)發(fā)任務(wù),并部署到Web Server中。
轉(zhuǎn)行做Java開(kāi)發(fā)如果有扎實(shí)的數(shù)學(xué)基礎(chǔ),也可以從事大數(shù)據(jù)或AI方面的開(kāi)發(fā)工作,由于大數(shù)據(jù)開(kāi)發(fā)需要一定的數(shù)學(xué)基礎(chǔ),所以有一定的門(mén)檻。當(dāng)然在大數(shù)據(jù)開(kāi)發(fā)領(lǐng)域使用Python開(kāi)發(fā)也是一個(gè)好的選擇,畢竟Python比Java更容易掌握,功能也十分強(qiáng)大。
如果想做Android方面的開(kāi)發(fā)則需要學(xué)習(xí)的內(nèi)容要稍微少一些,在掌握基礎(chǔ)的Java語(yǔ)法之后就可以學(xué)習(xí)Android開(kāi)發(fā)了,Android開(kāi)發(fā)主要集中在Activity、Intent、Service、ContentProvider、BC以及諸如手勢(shì)、外設(shè)連接、數(shù)據(jù)庫(kù)操作等內(nèi)容。
目前很多公司的Java程序員都可以做Android開(kāi)發(fā),所以只掌握Android開(kāi)發(fā)未免有些單薄,所以還是建議系統(tǒng)學(xué)習(xí)一下Java Web開(kāi)發(fā)。
我做過(guò)的很多項(xiàng)目都是使用Java完成開(kāi)發(fā)的,作為問(wèn)答的簽約作者,我在頭條上陸續(xù)寫(xiě)了一些關(guān)于Java、Python的文章,里面有很多驗(yàn)證性實(shí)驗(yàn),感興趣的朋友可以關(guān)注一下,有問(wèn)題也可以跟我交流。