1. 程式人生 > >馬士兵Java學習

馬士兵Java學習

目錄

七:XML 

JAVA自學之路 學會選擇 

為了就業,不少同學參加各種各樣的培訓。

決心做軟體的,大多數人選的是java,或是.net,也有一些選擇了手機、嵌入式、遊戲、3G、測試等。

那麼究竟應該選擇什麼方向呢?

我的意見是,不要太過相信各種培訓機構或是搶手文章的說法(包括我),當你要走向社會的時候,就不要再把自己當成學生,不要把自己的將來交給別人,學會運用自己的眼睛去觀察,去了解這個世界吧。

每個培訓機構都會宣傳自己的好處,並不能說明大的趨勢。 一些新聞文章很有可能是槍手寫的,不必太過相信。國外背景的教師和課程,未必適合你。那麼怎麼才能確定自己將來的方向?如何才能從紛繁複雜、或真或假的資料世界中挖出一條路?

我講一個通過招聘網站的觀察方法。

可以到各種招聘的網站上查詢資訊(可以到google上查詢招聘的網站),例如:

這些資料都是最真實不摻假的原始資料,你可以每隔一段時間搜尋一次,一些規律就會被總結出來了比如說我在http://www.jobui.com中搜索java,全國大概提供了3萬個職位。 位然後要多翻幾頁,這樣不僅能夠看清楚大概有多少是有效的職位,而且還可以看清楚用人單位最關心的技能是什麼,這個很重要,決定著你將來要花多少時間和精力在特定的知識點上,比如說swing,搜了一下,全國只有700個左右的職位,仔細讀了一下,也並非全是有效的職位,花太多時間和精力在這個上面就不值得了,當然自己感興趣或者為了研究的話另當別論。不過如果是為了快速的就業,把太多時間和精力花在很多職業生涯的前一、二年用不到的知識上就太可惜了。 同時,並非某一個行業的職位數目少,就不能當作一個方向進行選擇,比如.NET,我搜索到的職位數是1.6萬左右,比java少,是不是就選java了呢?不一定,因為java職位雖然多,但是可能競爭者可能也多,有些方向雖然職位數不多,但是和你競爭這些職位的人數量也少,不見得就不能選擇。不過,如果某一個方向的職位數目過少,你可就要小心了,選擇這樣的方向風險會非常大,如J2ME。

我個人覺得java/J2EE、.net、嵌入式開發是不錯的三個方向。

如果非要在java和.net中選擇的話,我個人是推薦java的,原因:

1:Java能夠開發linux、unix伺服器上的程式

2:JavaEE和.NET在企業應用方面的關注點是差不多的,但是學習了java如果將來想轉到.net上會比較簡單,幾天的學習然後上手開發應該是問題不大的,但是反之就不行了。

當然如果有了些經驗之後,你就會發現語言或者平臺不再是技術上的阻礙,一些原理性的東西學到手,然後再加上專案經驗,使用什麼平臺,反而不是最重要的。不過如果非要用一種平臺進入企業開發的領域,至少在目前,2007年9月,我推薦java。

完全可以不同意我的觀點,但是無庸置疑,如果是為了就業,多到招聘網站閱讀閱讀職位的資訊,對你將來的方向和學習是大有益處的。選擇是最痛苦的,看看《天生購物狂》中的劉青雲就知道了,不過既然無法逃避,就作出自己的選擇吧。每個人都會受到別人的影響,在作出決定之前,要想盡各種辦法讓自己理性一些吧。這樣,你的選擇會離正確的方向更近一些。

JAVA自學之路 二: JAVA自學路線圖

有不少的同學發信給我,和我探討java的自學過程應該是什麼樣的,畢竟有很多人因為各種各樣的原因不能參加培訓。我試著給出自己的見解,拋磚引玉吧。這個路線圖是給那些為了就業的人準備的,如果只是興趣,不一定照這個走。這裡只是講了路線圖,關於路線中的各個階段,學到什麼程度,如何學習等,可以參考後面的JAVA自學之路 七:《路線圖明細》。

首先要學JavaSE,這是無庸置疑的。與此同時,是的,與此同時,JavaSE的學習同步,建議大家研究一下資料結構與演算法。在這兒之後,你可以選擇向J2ME、或者Java GUISocket程式設計等方向努力,但是通過第一篇的辦法,你可以很容易就將這方向過濾掉(永遠不要忘了我們是為了就業),好吧,暫時和它們訣別,還是向著J2EE的方向前進吧。JavaSE完成之後,可以試著完成一些小專案,同時關注一下設計模式的內容,不必強求自己能夠完全掌握各種細節,往前走吧

掌握一種程式設計工具,比如說Eclipse

資料庫,可以選擇使用Oracle或者MySQL開始。JDBC,用Java連線資料庫。可以選擇在這個地方切入Hibernate,也可以選擇在Struts之後。

HTML \ CSS \ JavaScript,這些東西是做web專案必需的內容。

Servlet \JSP,伺服器端必需。

XML AJAX新的流行趨勢不能不瞭解。

作一些小專案吧。比如BBS、留言系統、學籍管理、商城等等,隨便找一些業務邏輯比較簡單的來做一做:

StrutsMVC的典型應用HibernateOR Mapping的典範之作Spring IOC + AOP面向物件面向切面完善的旅程。把以前自己的小專案加入StrutsSpringHibernate的元素吧。去研究各種商業專案的業務邏輯吧,才能在你的簡歷中加入濃重的一筆。EJB3.0java在走了很多彎路後的迴歸之作,值得研究。SOA,業界鐵定的未來趨勢,要緊緊跟隨。

在後面,我會告訴你每一步的學習方法和學習重點。

JAVA自學之路 三:要動手 

無論如何,請堅持不懈的動手實驗!

學習Java要動手,僅僅是看和聽是不能夠學好程式設計的。總有同學來信問我們這樣的問題,說:"老師我看了視訊了,可是怎麼一動手就沒有任何思路呢?"對此,我一般都會說不要著急,如果你只是看了視訊就想行雲流水的話,那老師這些年的鍛鍊真是白費了,這麼多年的苦練才能略有些行雲流水的感覺,你一朝一夕就想自己能夠達到,不是太奢侈了嗎?

作為程式設計的過來人想一下,當年自己學程式設計的時候是什麼時候有思路的呢?至少也是照貓畫虎畫了一段時間之後吧,我本人是在某一個領域畫虎畫了上萬行程式碼的時候才慢慢有自己思路的。就像寫作文,要有自己思路總是一般來說要經過幾個階段,首先學習詞彙,然後學習造句,然後大量閱讀別人的文章,自己模仿著寫一些,逐漸的經驗積累,才能形成自己的思路。學程式設計,恐怕也得慢慢的來吧,只是看一看、聽一聽視訊,是不足以學好程式設計的。

所以,動手吧,跟著做,一行一行的跟著敲,一個專案敲完了,比如坦克,再試著加一些自己的功能,按照自己的思路敲一些程式碼,收穫遠比干聽大的多。

如果遇到,暫時對於一些思路不能理解的同學,我一般都會勸告說,動手寫,先寫程式碼,量變會引起質變的。而這種質變的確發生過不少次。

醒一句,要理解程式碼思路之後再跟著敲,揹著敲,千萬不要左邊擺著別人的程式,右邊自己一個一個子母的寫,這就不再是程式設計師了,成了打字員了。 

紙上得來終覺淺,所以:別問那麼多,別想那麼多,動手寫吧。

JAVA自學之路 四:要事為先

對待人生的任何事情都要:抓大放小,要事為先!

對於一個以前從來沒有接觸過java的人,java無疑是龐大的,似乎每個領域都可以拓展開來都是一片開闊地,每一個領域要想深入接觸到每一個細節所耗費的精力都是巨大的。這個時候大家都胸懷壯志,兩眼發光的盯著每一個嶄新的知識點,遇見了任何一個知識點都恨不得摳的清清楚楚,明明白白。

難道這有什麼不對嗎?

我的意見是,這樣並沒什麼大毛病,但是學習效率太低了!我們推薦的學習方式是,抓大放小,要事為先{馬士兵老師的這句話可能並不適合當代的大學生。仔細思考} 

比如說學習J2SE的時候,學到GUI這一章,有的同學認為,既然學到這兒了,我們去把SWING細細的瞭解一遍吧;還有的同學,遇到了在Linux下的Shell程式設計,就恨不得把Shell先學成專家才肯,或者是才敢,繼續往下學習;有沒有過這樣的感覺,一本書的上冊沒有學好,覺著下冊心裡也沒底兒,甚至非要把上冊複習一遍才敢繼續學習。如果你也是這樣,要去看看心理醫生啦,沒準兒會有潔癖的毛病。

任何事情都要追求完美才敢繼續往後進行,是一種性格缺陷

大膽的放棄一些東西吧,有失才有得,把自己有限的、寶貴的精力用在對於就業直接相關的地方,這才是最有效率的學習方式!等你參加工作,有了可持續發展的事業動力和經濟基礎,有時間有精力閒的沒事兒乾的時候,再去研究那些其它吧。

曾經有一個故事,說得是產能和產量的關係。

一個人喜歡讀書,讀了一輩子,無所不通,這時候要做任何工作都可以,他的產能到了極致,但是,他老了,即便每天產出大量的東西也不能維持多久了,一輩子的產量並沒有多少。另一個人直接工作,忙,天天在機器旁日復一日,做了一輩子,沒時間學習和進修,可以想象,產量能有多大呢。

人的一生,要鍛鍊產能,也要及時產出,引擎要轉,也要停下來加油,這兩者平衡的越好,你的貢獻和產量就會越大。如果鑽研的東西和產能目標(或者說近期的產能目標)無關的話,要捨得放手。

所以,對於SWING,暫時先扔在一邊吧。對於shell,對於各種協議過於詳細的細節,對於喜歡的遊戲程式設計,對於javascript各種華而不實的效果,都暫時和它們分別吧。一切和我們的直接工作目標關聯不大的東西,扔在一邊或者弄清楚到足夠支援下一步的學習就可以了。 {能否把這種工作目標換成其他的東西呢?}

那這樣豈不是妨礙我成為通曉各種細節的高手了嗎?

我一向不認為一個人掌握了很多很多知識點的細節就是高手了,一個人如果告訴你,回字有四種寫法,你會認為他是高手嗎?毫不客氣的說,現在我們所教授的所有知識細節在網上或書中都可以找到,只要你肯花時間花精力去動手試,去鑽研,沒有什麼不能掌握的。strutsspring你能掌握嗎?當然能!但是如果把時間花在spring的各種細節的研究上,花在研究中國企業應用不廣泛地的spring mvc上,這個精力就太浪費了,而且學習的積極性會受到打擊,誰願意整天泡在細節的蜘蛛網中掙扎不出來呢?誰願意天天經歷風雨卻總是不能見到彩虹呢?

蓋房子,要先建骨架,再談修飾。畫山水,要先畫結構,再談潤色。

認識一臺結構複雜的機器,應該首先認清楚脈絡,然後再逐步認識每一個關節。

為了應付從小學到大學的考試,我們背了各種各樣的不應該提前掌握的細節,同時也養成了見到細節就摳的學習習慣。而現在,是到改改的時候了。

請在合適的時間,做合適的事情吧。{Do ForwardThink ForwardSanely}

把時間和精力花在作專案上面,花在寫作品以及鍛鍊解決問題的能力上面吧,這是邁向高手的正確的而且快速的方向。

我一直不認為一個課程提供了很多很多的細節就是優秀的價值高的課程了,掌握必要的細節,這個不含糊,至於其他,或者通過視訊給出(這樣可以給出更多的細節,但是不佔上課時間,課上只講重要的、必要的細節知識),或者在掌握了自學的能力後自己能夠查出,這才是正途。

當你看書到某個地方暫時不理解的時候的,暫時放手吧,追求一些行雲流水、自然而然的境界吧,只是不要停下前進的腳步,不要被大路旁邊的支根末節干擾了你前進的行程,專案,真實的專案,這才是目的,就在不遠的前方。

陶淵明讀書,叫做不求甚解”,但他是大詩人。

諸葛亮讀書,總是觀其大略”,但他是大政治家。

作研究的,是在確定了方向之後才詳細的研究深入的東西。

到了廬山,脈絡形狀扔在一邊,盯著一棵棵小草、一粒粒石子的看,怎麼樣才能識得“真面目”?

作為應用型的人才,是研究回字的n種寫法還是抓緊時間向著主要應用的方向努力,請自己作出抉擇。

以專案驅動自己的學習吧,當把握了技術的脈絡之後再去補充細節的研究,是正途。這輩子就不研究其他的方向了嗎?當然要研究!但是在將來合適的時間再說吧。

所以,抓大放小,要事為先!

既然是學習,就不可能不遇到問題。

既然是自學,就沒有方便的和老師探討的機會。 

那麼,遇到問題之後,環境配不通,程式調不過,執行不正常,遇見這些惱人的問題的時候,該怎麼辦呢?

首先我要恭喜你,遇見問題,意味著你又有漲經驗的機會了,每解決一個問題,你的JAVA經驗值就應該上升幾百點,問題遇到的越多,知識提升的越快。 但是總是解決不了也是很惱人的,怎麼辦呢? 我一般要求我們的學生都是這樣來進行的。

當你遇到一個問題的時候:

1:要仔細的觀察錯誤的現象,是的,要仔細

有不少同學的手非常快,在編譯一個程式的時候,報了一大堆的錯誤,掃了一眼之後就開始盯著程式碼一行一行的找,看清什麼錯誤了嗎?沒有!有的時候安裝軟體出問題了,一個對話方塊彈出來說出錯了,馬上舉手問老師:“不得了了,出錯了,出錯了”。

“什麼錯誤?”

“還沒看呢?”

這都是典型的不上心的方法請記住,學習程式設計並不是一件很容易的事情,自己首先要重視,要用心才可以。 在開發中,仔細觀察出錯資訊,或者執行不正常的資訊,是你要做的第一件事。讀清楚了,才能在以後的步驟中有的放矢,哭了半天,總要知道哭的是誰才成。

這裡又分三種情況:

A:錯誤資訊讀懂了,那麼請進入2步:要仔細思考問題會出在哪些環節

B:沒讀懂,愣是一點沒看懂,進入第4步吧:google

C:讀了個半懂,有些眉目但是不太能確定,第2步和第4步結合著來。

2要仔細思考問題會出在哪些環節(重要)

當你讀懂了一個問題之後,要好好的思考這個問題可能會在哪些環節上出錯。

一輛汽車從總成品線上下來,車門子關不上! 哪錯了?你怎麼查? 當然是順著生產線一站一站的查下來。 程式也是一樣的,也是一系列語句完成後產生的結果。

寫一個網路程式,總是發現伺服器端打印不出接收的資料,有幾個環節會出錯仔細分析這個現象的環節:

客戶端產生資料->按“傳送”按鈕->傳送到伺服器->伺服器接收到後列印

這幾個環節都有可能會出錯:

有可能客戶端根本就沒產生資料,有可能傳送按鈕按下去後根本就沒發出去,或者發出去的不是你產生的東西,或者根本就沒連線網路,或者傳送出去伺服器沒有接收到,或者接收到之前就列印了等等等等。

學著去這樣仔細的分析程式的環節和這些環節可能會產生的問題,你的經驗值定然會大幅度快速的提升,這樣做很累人,但是一件事情如果做下來一點都不累的話,這個東西還有價值嗎?

在網頁A輸入了一個人的名字,提交到B,首先儲存到資料庫,然後再讀出來,發現亂碼!怎麼辦?當然是分析環節:

客戶輸入->HTTP傳送->B接收->儲存到資料庫->讀出->展現到網頁

每個環節都可能出問題,怎麼才能知道哪裡出的問題?繼續往下讀。

3如何定位錯誤(重要)分析清楚有哪些環節之後,下一步就是定位到底什麼環節出錯了。

定位有以下三種辦法:

A  列印輸出,比如javaSystem.out.println(),比如jsalert(),這種辦法常用,必須掌握

B  Debug,可以參考我們的視訊《坦克大戰》,詳細講了Eclipse的除錯。

C  刪掉一部分除錯一部分,也就是去掉一部分的功能,做簡化,然後除錯剩下的功能,JSPJavaScript常用。

4:如果還不行,google 

還查不出來?恭喜你,你遇到的錯誤是值得認真對待的錯誤,是會影響你學習生涯的錯誤,問一下google或者百度吧。照著下面的方法查檢視。

一般來講,搜尋引擎可以搜到各種知識點,我曾經跟同學們開玩笑說:“學會了怎麼google或者baidu,其實沒必要跟老師學了,自己全都搞懂了,尚學堂是沒必要來的。”當然,只是玩笑,培訓的作用有三個:

A:系統化知識

B:真實專案鍛鍊經驗

C:少走彎路,節省時間 

不知不覺開始做廣告了,請原諒,處其位謀其事,總得為尚學堂說點什麼:)

言歸正傳,如何查搜尋引擎?

先精後粗,首先先進行儘量精確的查詢,比如一個錯誤,SocketException,你懷疑它是在connect()方法出的問題,那麼當然是選這樣的關鍵詞java connect SocketException

先中後英,本著以解決問題為主的想法,練習英文還是先放在一邊吧,首先應該在中文網頁中查詢,還不行的話,搜尋英文的吧,最近的尚學堂課程中會帶大家閱讀英文的書籍。有很多東西就像一層窗戶紙,遠看灰濛濛怪唬人的,你壯著膽子一捅,它就破了。閱讀英文的書籍就是如此,不是想象中的那麼困難:)寧可在沙場上戰死,也不能被嚇死不是嗎:)

資訊篩選,搜尋出來的結果不見得能夠完全匹配,建議大家多閱讀前幾頁的搜尋結果,多開啟幾個網頁看看,不過,我的經驗是超過3頁一般就沒意義了,所以超過3頁還沒有找到合適的答案,或許應該調整一下關鍵詞,或者放粗整個搜尋的結果了。

經常的進行知識難點的查詢,如果一個問題牽扯的面比較廣,就乾脆到網上搜索一些相關的專題,比如java亂碼mysql” “oracle建立使用者”等等,如果有必要,不要犯懶,勤動手寫一些小小的測試程式,來弄明白知識點的細節。這也是漲知識的重要的途徑。

5:什麼?還不行?那麼就BBS 

如果實在還不行,就到BBS上面問一問高手吧。 到哪個BBS上?

google或者百度不就行了麼?關鍵詞“java論壇”“java bbs

然後在搜尋結果裡好好的看看那些活動頻繁的論壇,以後就是你經常光顧的地方了。http://community.csdn.net 就很不錯。

向別人提問是非常需要技巧的!

曾經有人問我這樣的問題:“請問如何才能學好java呢?”這個要求太泛泛了。還有人給我一段程式碼甚至jar包也寄過來,然後說老師的我的程式碼中有個錯誤您幫我查查。

我沒有辦法去花大量的時間建立環境去除錯一個還不知道存在不存在的錯誤!

還有人在BBS上問這樣的問題:“是否有人能幫我完成一個完整聊天的程式?請幫我寫一個登陸模組吧!”

這個要求有些過分了,有人幫你做是你的運氣,沒有人幫你是正常反應。

向別人提問,應該首先確定你已經做了自己應該做的事,簡單說是我前面列舉的1234步你都作過了,然後再求助於人。不要沒有經過認真思考就草率的向別人提問,自己也不會有長足進步的。

那我該怎麼樣向別人提問呢?

google或百度搜索《提問的智慧》,你會找到答案。

得到別人的回答,要懂得感恩。不需要去寫信感謝,不需要支付費用,不需要那些花言巧語,做到下面這一點就夠了:

當你逐步成為高手的時候,要回答別人在論壇上提出的問題,有時間有精力的前提之下! 

6還解決不了?問老師吧,這個只能是在你參加了培訓的前提下了。

7還解決不了?天哪,是不是思路從根上就搞錯了?寫信給我,讓我也學習一下,共同進步吧。

JAVA自學之路 六:專案的自學

現在就業競爭的激烈程度已經遠遠高於當年了,記得我當年畢業時,一個會程式設計的畢業生站到臺上,大聲問道:“我會ASP,月薪5000有沒有人要?” 臺下的企業馬上嘩的舉起一大片手:"我要我要!"。那時,沒有任何專案經驗也會有人提供學習的機會。這種好日子恐怕一去不復返了(有些誇張,但無疑當時找一份不錯的工作是比現在要容易的多)。

而現在,即便是各種必要的知識你掌握的差不多了,但還有一座大山橫在你的面前,那就是——專案經驗

有經驗的程式設計師都知道,學習程式設計的最有效率的方式,恐怕就是把你扔到一個專案組,連滾帶爬的做下一兩個專案來,你馬上會發現所有的知識點全都連到一起了,不再是分散的,而是形成一個整體了。那種感覺是僅僅深入鑽研知識點而不寫真實專案的人所不能體會的。一個專案就是一根繩子可以把大片的知識串到一起。

如果想鍛鍊實際開發的能力而不僅僅是背誦或者瞭解一些知識點,如果想成為真正的好手而不僅僅是背誦“回”字有幾種寫法,那麼,作專案吧!

目前,各種程式設計的知識點變得越來越容易掌握,按照JAVA自學之路 五:問題解決之道 中的各種辦法也可以逐步積累自己知識的廣度和深度,那現在什麼才能夠體現水平的不同?當然是專案經驗。

目前,尚學堂的課程已經超越了知識點的研究和羅列,我們將在未來的時間裡逐步公佈各個知識點的視訊,包括SSHEJB等,這樣做有兩個好處:首先自學的同學可以免費得到原來商業培訓的內容,這樣起碼可以節省一些時間,省一些力氣。其次尚學堂自己可以更加專注於專案上。

目前尚學堂的專案寫作佔了課程50%左右的比重,尚學堂的專案也早已經超越了簡單的MIS系統的概念,逐步的成為綜合了搜尋引擎、工作流、SCA/SDOLinux/UNIX、大型資料庫系統、設計模式、架構模式、負載均衡等各種深層應用的綜合大型專案並且採用手把手式的教學方法,做的更加的深入和細緻,從現在看效果相當好,最近142班的就業就完全證明了這一點(瞭解142的就業情況),我們的計劃是最近逐步將專案比重提升到70%以上,相信效果會更好。籤於公司的規定,我們並不能將所有的專案實戰都錄製成視訊來公佈,但是已經公佈的專案實戰也是非常的有價值的:(http://www.bjsxt.com/download.html)

1Chat & Tank系列

2BBS

3Shopping(近期公佈) 

那麼如果自學我們應該怎麼樣才能學習專案的開發呢?一個比較有效的辦法是,可以在現有專案的基礎上做的更深入一些,比如在你按照視訊完成了BBS之後,可以增加一些其他的功能,例如註冊/積分/精華/搜尋/貼圖等等,在完成了Shopping之後,可以增加一些評論/排行/統計/存貨等等方面的業務邏輯,嘗試用自己的技術將他們作出來,這樣既積攢了專案經驗,又記住了知識點。

那麼如何才能確定我要寫什麼樣的業務邏輯呢?應該講這對於一個初學者是非常困難的,一些簡單的系統,比如說BBSShopping、圖書管理等等,它們的業務邏輯很容易確定,去瀏覽和參考一些現成系統的功能,很容易就能瞭解了。但是對於商用的大型系統,光是瞭解業務邏輯本身就會花費大量的精力,如果有時間有精力有財力的話,還是建議考慮一下我們的培訓吧,這樣經驗的積累和薪水的提升會更快,從以前的統計資料看非常容易就可以回收這筆投資(替尚學堂的廣告,必須得寫,請見諒,但保證真實)。如果條件不允許,那麼就按照上面的方法來學習專案吧,不要因為暫時不能接觸更大型更深入的專案而氣餒,記住:機會總是青睞有準備的頭腦,努力吧。

JAVA自學之路 七:路線圖明細

下面給出第二節JAVA自學路線圖 中知識點的明細:

一:J2SE 

面向物件-封裝、繼承、多型   記憶體的分析

遞迴                             集合類、泛型、自動打包與解包、Annotation

IO                               多執行緒、執行緒同步

TCP/UDP                          AWT、事件模型、匿名類

正則表示式                       反射機制

二:資料庫(Oracle或者MySQL

SQL語句                              多表連線,內外連線, 子查詢等

管理表、檢視、索引、序列、約束等     樹狀結構儲存

儲存過程、觸發器                     資料庫設計三正規化、

三:JDBC

JDBC基礎               連線池

樹狀結構儲存與展現     DataSource & RowSet {看有視訊}

JDBC連線OracleMySQL

四:HTML_CSS_JAVASCRIPT

htmlcssjavascript基礎語法      JavaScript Form判斷

Dom程式設計基礎(事件處理等)      JS常用效果如TreeView、下拉聯動等

JS學習方法                      JS除錯方法

DreamWeaver初步(建立HTMLTableFormCSS)等

五:Servlet & JSP

tomcat基礎         servlet基礎

web.xml配置基礎    web application的結構

servlet生命週期      request response等常用方法

ServletContext類     HTTP協議基礎(GET POST

Cookie   Session   Application

JSP的幾種語法(包括JSTL等)注意在專案中練習,不要拘泥於語法細節而裹步不前

六:Struts

多層架構理論                 Model 1 and Model 2

Struts基本概念                MVC

Action與業務邏輯類的關係     在StrutsJSP之間傳遞資料

Struts處理流程(控制流)      Struts TagLib(瞭解常用的)

 JSTL                         ActionForm

欄位收集                     上傳檔案

型別轉換                     DTO

動態Action Form               驗證框架

ActionForward 轉發與重定向    動態生成ActionForward

全域性與區域性的ActionForward    Action Forward Scope

UnknownActionMapping        Action的執行緒安全

I18N       如何切換語言環境

Struts異常處理機制 程式處理 自動處理 自定義異常處理器

Struts的多模組配置

七:XML

XML/XSLXSLT/DTDSCHEMA等基礎的概念、關於Java的程式設計可以暫時扔在一邊)

八:Hibernate

OR Mapping原理

Hibernate基礎開發步驟

Hibernate基本介面(重點Session

普通屬性對映

關聯關係對映

Native SQL

inverse lazy cascade

繼承關係對映

HQL

效能優化 一級快取二級快取查詢快取

事務與併發 悲觀鎖、樂觀鎖

OpenSessionInView

CurrentSession

(至於JTA、聯合主鍵、自然主鍵、動態主鍵、Any型別Creteria Queries Intercepter and Event 自定義型別等,可以暫時扔在一邊)

九:Spring

IOC/DI

Spring配置

Spring架構

AOPSpring AOP

宣告式事務(AOP

Spring + Hibernate Spring支援Web

Scope

(其他的Spring模組對於自學來說可以暫時扔在一邊)

十:EJB3.0

J2EE架構基礎(JTA JMS等)

EJB基礎(地位及基本理論、分類等)

Annotation

Ant編譯與部署EJB

Session Bean

EJB的依賴注入

Persistence API

(可以用JBoss學習EJB3.0

十一:至於SOA,對於自學的同學來說,暫時不用特別關注。 

梳理一下,你就會發現東西不是想象中的那麼多呀!

建議大家優先學習我們公佈的視訊,然後再去找參考書,因為這個時候就能分辨出來哪些書適合你了。

那麼,如何才能找到好書呢?一個簡單的辦法,在賣書的網站上,比如http://www.china-pub.com,搜尋你想了解的知識點比如"javascript",按銷售排行,排在前幾位的,應該就是不錯的,記下書名,到書店閱讀幾章,合適你的就是好書了。沒錢買?簡單!還有什麼google + 電驢找不到的資料嗎?

第一部分:J2se學習視訊內容包括:

尚學堂科技_馬士兵_JAVA視訊教程_JDK5.0_下載-安裝-配置

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_01_JAVA簡介_原始碼_及重要說明

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_02_遞迴補充

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_02_基礎語法

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_03_面向物件

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_04_異常處理

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_05_陣列

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_06_常用類

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_07_容器

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_08_IO

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_09_執行緒

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_10_網路

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_11_GUI

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_5.0_專題_日期處理

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_專題_正則表示式

尚學堂科技_馬士兵_JAVA視訊教程_J2SE_專題_反射avi

第二部分:j2se練習專案視訊內容包括:

尚學堂科技_馬士兵_線上聊天系統雛形視訊教程_java_eclipse

尚學堂科技_馬士兵_坦克大戰視訊教程_java_eclipse

尚學堂科技_馬士兵_坦克大戰圖片版

尚學堂科技_馬士兵_JAVA_坦克大戰網路版視訊教程

尚學堂科技_馬士兵_snake_貪吃蛇內部視訊

第三部分資料庫視訊

Oracle視訊內容包括:01——53avi格式

第四部分:JDBCMySQL視訊,內容包括:

1_lomboz_eclipse_jdbc

2_mysql_avi

3_連線池的設計思路.avi

第五部分:HTML & CSS & JAVASCRIPT 視訊:

Html & CSS 視訊內容簡介:

01_html簡單介紹和meta標籤.avi

02_a_路徑問題等等.avi

03_學習方法_其他常用標籤.avi

04_1_note.avi

04_表格和表單_1.avi

05_表格和表單_2.avi

06_Frame.avi

07_Dreamweaver.avi

08_CSS_1.avi

09_CSS_2_選擇方式.avi

10_CSS_3.avi

11_CSS_4.avi

JavaScript 視訊簡介:

01_JS初步及除錯.avi

02_JS基本語法.avi

03_函式_事件處理_1.avi

04_事件處理_2.avi

05_內建物件_DOM_BOM.avi

06_趣味.avi

07_實用.avi

08_表單驗證.avi

09_表單驗證_new.avi

10_後臺框架.avi

11_後臺框架_2.avi

12_TREE.avi

第六部分:Servlet & JSP視訊——內容包括:

1 tomcat的安裝使用,配置

2 servlet & jsp 視訊 1——30

jsp的練習專案內容包括:

3 簡單bbs專案

3 2007美化BBS專案

4 網上商城專案視訊

4 網上商城專案視訊講解視訊

第七部分:J2EE學習視訊包括:

DRP專案

框架視訊學習:

Struts視訊

Hibernate視訊

Spring視訊

提高部分:

uml統一建模語言視訊

SSH專案視訊:

oa辦公自動化系統視訊

crm專案視訊

銀行系統視訊

ejb3.0視訊

J2ME_3G簡介資料

面試材料:面試題大彙總+筆記+技巧

看到這裡,你內心是否洶湧澎湃,是否準備大幹一番事業?這就對了!

讓我們仰望星空,腳踏實地,

向Java程式設計大佬進軍,然後

當上CEO!

迎娶白富美!

走向人生巔峰!

                                                                                                                             2017年11月7日

                                                                                                                                  與君共勉