AVA學(xué)習(xí)需要什么基礎(chǔ)
隨著Java這種語(yǔ)言的廣泛運(yùn)用,越來(lái)越多從事開發(fā)的人員開始學(xué)習(xí)接觸這門課程,那么,Java學(xué)習(xí)需要什么基礎(chǔ)?Java剛剛?cè)腴T應(yīng)該接觸哪些知識(shí)呢?Java入門應(yīng)該學(xué)習(xí)什么內(nèi)容呢?
首先要說明的,JAVA有三個(gè)大的方向(J2se,J2me,J2ee),走不同的方向可能學(xué)的技術(shù)和要花費(fèi)的時(shí)間可能有所不同。我是搞web方向的(J2ee),我學(xué)Java除了以前一些簡(jiǎn)單的C語(yǔ)言語(yǔ)法外,沒有太多的編程基礎(chǔ),我以前一直認(rèn)為編程要有很強(qiáng)的數(shù)學(xué)和英語(yǔ)功底,現(xiàn)在看來(lái)這也不是必需,只要有一定的邏輯思維能力和掌握一些常見的計(jì)算機(jī)詞匯,還需要具備一定的自學(xué)能力,因?yàn)檐浖_發(fā)工作是需要不斷學(xué)習(xí)的。
其次,我想說下我的學(xué)習(xí)過程,我在網(wǎng)上下載了JAVA教學(xué)視頻,將Java基礎(chǔ)從頭到尾看了一遍,將上面的代碼基本上跟著敲了一遍,然后我把Java基礎(chǔ)的書看了一遍,一本書看完包括上面的習(xí)題大概做一遍差不多一個(gè)月。這時(shí)你對(duì)Java的語(yǔ)法和基本知識(shí)應(yīng)該都有比較充分的認(rèn)識(shí)和了解了。
然后,再做一些小項(xiàng)目,跟著視頻上的步驟做,最好能自己獨(dú)立再寫寫,能寫多少是多少。一般網(wǎng)上比較新的免費(fèi)的項(xiàng)目庫(kù)很不好找,因?yàn)轫?xiàng)目庫(kù)是需要實(shí)時(shí)更新以保證適合市場(chǎng)需要的,而它的升級(jí)和更新是需要錢的,所以去報(bào)一個(gè)培訓(xùn)中心利用它強(qiáng)大的項(xiàng)目庫(kù)進(jìn)行實(shí)戰(zhàn)操作是個(gè)很好的選擇。
操作一段時(shí)間之后,你對(duì)Java已經(jīng)有了一定的感覺,就要開始選擇你的發(fā)展方向了。我選擇了J2ee,如果你也是想走這條路,你可以接著看關(guān)于J2ee的視頻,先是html+Js+css,然后Jsp+serverlet,再看struts+spring+hibernate等一些框架。同時(shí)可以看一些大的培訓(xùn)機(jī)構(gòu)的關(guān)于設(shè)計(jì)模式的視頻,最好是IT牛人錄制的,當(dāng)然數(shù)據(jù)庫(kù)也得學(xué)下,然后加上做項(xiàng)目的經(jīng)驗(yàn)累積,半年就差不多可以出去工作了。
如果你做其他方向的話我不是很了解。再說下我個(gè)人的看法,J2me和J2se好像前景沒J2ee好,不過我有同事是做android平臺(tái)開發(fā)的,這個(gè)不需要J2ee的知識(shí),你可以去買本android的看看,這個(gè)方向貌似很有前途,你應(yīng)該也常聽說android平臺(tái)的手機(jī),如果走這方向可以再學(xué)一下linux知識(shí)和c的知識(shí),因?yàn)檫@個(gè)平臺(tái)底層是這些,這也不是必要。
說了這么多希望對(duì)大家能有所幫助。最后再說一句,學(xué)東西,最重要的是動(dòng)手,只有動(dòng)手做了才能深深的理解,牢牢的記住。
由于Java開發(fā)涉及到比較多的領(lǐng)域,每個(gè)領(lǐng)域需要具備的知識(shí)結(jié)構(gòu)也是有所區(qū)別的,所以就需要根據(jù)領(lǐng)域進(jìn)行分別闡述。由于目前Java主要的應(yīng)用集中在Web開發(fā)、移動(dòng)互聯(lián)開發(fā)和大數(shù)據(jù)開發(fā)三個(gè)領(lǐng)域,所以下面就從這三個(gè)領(lǐng)域進(jìn)行分別介紹。
Web開發(fā)領(lǐng)域在Web開發(fā)領(lǐng)域,Java的主要知識(shí)結(jié)構(gòu)包括三個(gè)部分,分別是Java基礎(chǔ)、Java分布式開發(fā)和Java企業(yè)級(jí)開發(fā)。Java基礎(chǔ)部分知識(shí)是所有方向都需要掌握的,也是學(xué)習(xí)Java的一個(gè)難點(diǎn),包括Java的面向?qū)ο蟾拍?、面向?qū)ο缶幊踢^程以及異常處理、IO、集合和多線程等內(nèi)容,基礎(chǔ)部分需要重點(diǎn)掌握的概念是封裝、繼承和多態(tài)(這部分細(xì)節(jié)可以參考我之前在頭條寫的文章)。
Java分布式開發(fā)是學(xué)習(xí)Web開發(fā)的重要階段,這個(gè)階段要了解分布式開發(fā)的基礎(chǔ),并采用分布式的方式完成功能的部署。Java的分布式開發(fā)可以從了解RMI、Hessian(可以跨語(yǔ)言使用)、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語(yǔ)言。
Java的企業(yè)級(jí)Web開發(fā)有兩套方案,一套方案是JavaEE,另一套方案是輕量級(jí)框架,代表技術(shù)是Spring(SpringMVC、SpringBoot、SpringCloud等)方案。由于目前JavaEE已經(jīng)交給Eclipse基金會(huì)管理了,并更名為Jakarta EE,未來(lái)的發(fā)展還有待觀察,所以目前更多的程序員選擇Spring方案。
移動(dòng)互聯(lián)領(lǐng)域移動(dòng)互聯(lián)領(lǐng)域的開發(fā)除了要學(xué)習(xí)基礎(chǔ)的Java知識(shí)以外,還需要學(xué)習(xí)Android開發(fā)相關(guān)知識(shí)和云計(jì)算相關(guān)知識(shí)。
Android開發(fā)包括幾個(gè)大的內(nèi)容,包括Activity、Intent、Service、Fragment、SQLite等內(nèi)容,Android開發(fā)需要學(xué)習(xí)大量的圖形組件開發(fā)知識(shí),以及對(duì)應(yīng)的事件處理方式,總的來(lái)說,Android部分的內(nèi)容雖然比較多,但是難點(diǎn)并不高??匆粋€(gè)簡(jiǎn)單的例子:
移動(dòng)互聯(lián)開發(fā)還需要學(xué)習(xí)一些云計(jì)算方面的知識(shí),因?yàn)橐苿?dòng)互聯(lián)開發(fā)往往需要進(jìn)行云端部署。通常情況下,移動(dòng)互聯(lián)開發(fā)也涉及到后端的服務(wù)開發(fā),但是往往后端服務(wù)開發(fā)都由Web開發(fā)人員來(lái)完成。Android的后端服務(wù)可以使用Java、Python、PHP等語(yǔ)言來(lái)開發(fā),可以根據(jù)具體的應(yīng)用場(chǎng)景進(jìn)行開發(fā)語(yǔ)言的選擇。
大數(shù)據(jù)領(lǐng)域目前Java在大數(shù)據(jù)領(lǐng)域也有廣泛的使用,大數(shù)據(jù)開發(fā)涉及到的內(nèi)容比較多,也有一定的難度。由于大數(shù)據(jù)開發(fā)有諸多崗位,不同的崗位有不同的知識(shí)結(jié)構(gòu)要求,總的來(lái)說集中在操作系統(tǒng)、大數(shù)據(jù)平臺(tái)、算法設(shè)計(jì)與實(shí)現(xiàn)等幾個(gè)部分。
大數(shù)據(jù)平臺(tái)目前主要以Hadoop和Spark的應(yīng)用比較多,Hadoop平臺(tái)有健全的生態(tài),以及大量成功的案例。但是,Hadoop平臺(tái)配置比較麻煩,需要一個(gè)系統(tǒng)的學(xué)習(xí)過程。
我做Java開發(fā)多年,目前主要的研究方向是大數(shù)據(jù)和人工智能,也在帶相關(guān)方向的研究生,我會(huì)陸續(xù)在頭條寫一些關(guān)于大數(shù)據(jù)方面的文章,感興趣的朋友可以關(guān)注我的頭條號(hào),相信一定會(huì)有所收獲。
如果有大數(shù)據(jù)方面的問題,也可以咨詢我。
謝謝!
java只是一門編程語(yǔ)言,客觀的說,零基礎(chǔ)也可以學(xué)。不過有英語(yǔ)基礎(chǔ)要好許多,畢竟絕大部分變量、關(guān)鍵字等都是用英文表示的;還有就是數(shù)學(xué)好,邏輯思維能力強(qiáng)學(xué)習(xí)編程更容易。
作為零基礎(chǔ)的興趣愛好者,學(xué)習(xí)java可能要比一般人付出的努力多一些。只要自己有學(xué)習(xí)的動(dòng)力和自學(xué)的能力,一切都不是事,網(wǎng)絡(luò)上關(guān)于java的學(xué)習(xí)資料非常多,很多編程論壇、學(xué)習(xí)網(wǎng)站,還有很多網(wǎng)站是免費(fèi)在線視頻教學(xué)的,自己制定計(jì)劃跟著網(wǎng)上視頻學(xué)習(xí),或者自己下載電子版書籍以及相關(guān)教學(xué)視頻學(xué)習(xí)。實(shí)在找不到資料的可以私信本人,本人具有全套學(xué)習(xí)資料,可以免費(fèi)貢獻(xiàn)給大家。
學(xué)習(xí)路線是:先學(xué)習(xí)java SE,也就是java基礎(chǔ)部分,然后java web,SSM框架實(shí)戰(zhàn)開發(fā);若是打算學(xué)習(xí)安卓APP開發(fā),可以學(xué)完java基礎(chǔ)部分直接學(xué)習(xí)安卓方面的開發(fā)內(nèi)容。
總之,學(xué)習(xí)編程一定要多敲代碼,多練習(xí),熟能生巧,實(shí)踐多了慢慢就掌握了。