學(xué)習(xí)Java,我建議這樣學(xué)!(收藏備用)
很多童鞋向我提問,想要學(xué)習(xí)Java,卻不知道該學(xué)什么,也不知道該學(xué)到什么深度?
也有些外包的同學(xué),想在技術(shù)上提升,卻不知怎么做?
本篇文章專為想學(xué)習(xí)和提高Java的人定制,給出了詳細的學(xué)習(xí)路線,適合想要系統(tǒng)的專業(yè)的學(xué)習(xí)Java的人。尤其是:想要從事Java開發(fā)工作的大學(xué)生,想要轉(zhuǎn)行當(dāng)Java程序員的在職人員,想要提升Java水平卻不知如何入手的小白等。
30天從入門到精通??那是宣傳的噱頭。
三個月培訓(xùn)等于兩年經(jīng)驗??那是宣傳的噱頭。
畢業(yè)都能進BAT? ?那還是宣傳的噱頭。
基礎(chǔ)階段
首先是基礎(chǔ)階段,在基礎(chǔ)階段,我們必須掌握Java基礎(chǔ),Mysql數(shù)據(jù)庫,Oracle數(shù)據(jù)庫,JDBC,Linux基礎(chǔ),Java8新特性,數(shù)據(jù)結(jié)構(gòu)和算法,設(shè)計模式。
對于基礎(chǔ)階段,我們所要掌握的就是基礎(chǔ),雖然是基礎(chǔ),但學(xué)起來也夠嗆。因為是初學(xué)者,所以基礎(chǔ)階段會有一點難度,但只要肯堅持,這些也沒什么難的。對于Linux、數(shù)據(jù)結(jié)構(gòu)、算法和設(shè)計模式我們掌握一些基礎(chǔ)就行了,也沒必要學(xué)得非常透徹。
Web基礎(chǔ)
基礎(chǔ)階段過后,我們還必須要掌握一些Web方面的知識,Html,JavaScript,JQuery和AJax,同樣的,對于這些知識,我們只需掌握基礎(chǔ),而不需要深究,否則,你將耗費大量的時間。
詳細內(nèi)容
1. Java基礎(chǔ)
基礎(chǔ)語法
類,封裝,繼承
一切皆對象Object類
接口,多態(tài)
異常處理
泛型
枚舉
Java IO
常用類,常用接Java注解
Java反射
Java網(wǎng)絡(luò)(可選)
2. Java Web
前端腳本html,js,velocity,xml
Servlet程序開發(fā)
深入理解mvc模式
常用Java項目結(jié)構(gòu)
Jetty tomcat使用
Mysql使用
Springmvc spring mybatis 項目上手
3. Java多線程
線程入門thread runnable
內(nèi)置鎖 synchronized
線程協(xié)作 wait notify notifyAll
Executor體系 callable
顯示鎖 lock
條件隊列 condition
常用并發(fā)編程類
Volatile
體現(xiàn)功力的threadlocal
線程安全問題的核心
常見的死鎖原因
樂觀鎖 悲觀鎖 cas
4. Java虛擬機
Jvm體系架構(gòu)
類的生命周期
對象的生命周期
常量池
垃圾回收機制
5. 設(shè)計模式
單例模式
工廠模式
策略模式
適配器模式
模板模式
回調(diào)模式
建造者模式
6. 網(wǎng)站架構(gòu)
大型網(wǎng)站的架構(gòu)
常用優(yōu)化手段
分布式與無狀態(tài)
負載均衡
7. Spring框架
Aop如何實現(xiàn)
ioc如何實現(xiàn)
事務(wù)如何實現(xiàn)
對象怎么管理
推薦學(xué)習(xí)資料




JavaEE
最后是JavaEE階段,當(dāng)你學(xué)到這個階段,你對Java的程序開發(fā)已經(jīng)了如指掌。然而,自己開發(fā)的過程是艱難而復(fù)雜的,所以JavaEE階段我們需要去學(xué)習(xí)一些非常優(yōu)秀的框架,來幫助我們進行程序開發(fā)。
對于框架,我們需要學(xué)習(xí)Struts2,Hibernate,Spring,SpringMVC,JPA,SpringData,MyBatis,Spring Boot,Spring Cloud,Dubbo。要學(xué)習(xí)的框架其實非常多,有些框架也十分有難度,我們在學(xué)習(xí)階段只要能夠熟練使用它們即可,有能力的話可以研究一下源碼,看看框架的底層實現(xiàn)。當(dāng)然,除了框架,我們還需要學(xué)習(xí)Maven,Git,Github,ActiveMQ,Jenkins等。
在JavaEE階段學(xué)習(xí)的東西是最多的,但如果你經(jīng)歷了JavaEE階段的學(xué)習(xí),你的編程水平將會有質(zhì)的飛躍。
有同學(xué)向我反映,說數(shù)據(jù)結(jié)構(gòu)和算法不學(xué)好就只能當(dāng)個碼農(nóng),說我在文章中指出"只需學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法的基礎(chǔ)即可"是誤導(dǎo)別人。確實,這句話是沒說錯,我在之前的文章中也強調(diào)過數(shù)據(jù)結(jié)構(gòu)和算法的重要性,它們是程序的靈魂。然而,數(shù)據(jù)結(jié)構(gòu)和算法是具有一定難度的,對于新手可能非常地不友好,新手要想徹底掌握它們是很困難的,所以我只是說在基礎(chǔ)階段掌握基礎(chǔ)即可,而不需要去深究。而隨著學(xué)習(xí)的深入,你的知識體系將會越來越龐大,這個時候,對于數(shù)據(jù)結(jié)構(gòu)和算法可不能僅僅停留在表面了,我們應(yīng)該去更加深入地研究這些東西。
在這里也感謝大家給我提出的意見,只要大家說的在理,說的是對的,我都會去及時改正。金無足赤,人無完人,在寫文章的過程中,難免會有一些不太嚴(yán)謹?shù)牡胤剑@里也歡迎大家批評指正。

從底層向上原理解讀

多線程與高并發(fā)

JVM調(diào)優(yōu)案例式實戰(zhàn)化指導(dǎo)

經(jīng)常被問的操作系統(tǒng)原理剖析

Spring源碼

SpringBoot

SpringCloud

深入透徹完整解析Redis

【史上最全】600分鐘精通Redis、ZK、布隆過濾器、分布式,附送源碼、筆記
Zookeeper

分布式事務(wù)

高負載高并發(fā)高可用架構(gòu)設(shè)計指導(dǎo)思想

學(xué)習(xí)本篇文章,不能讓你30天從入門到精通,不能保證你進BAT,但是能保證教會你如何系統(tǒng)的學(xué)習(xí)Java知識,最終成為一個專業(yè)的Java開發(fā)者。
當(dāng)然,如果你有更好的關(guān)于學(xué)習(xí)編程的方式方法問題,也可以評論區(qū)留言!整理不易,懇請三連!
