從初級程序員到架構(gòu)師,從小工到專家,這些技術(shù)都是你必備的

怎樣學(xué)習(xí)才能從一名Java初級程序員成長為一名合格的架構(gòu)師,或者說一名合格的架構(gòu)師應(yīng)該有怎樣的技術(shù)知識體系,這是不僅一個剛剛踏入職場的初級程序員也是工作三五年之后開始迷茫的老程序員經(jīng)常會問到的問題。希望這篇文章會是你看到過的最全面最權(quán)威的回答。

進(jìn)群:697699179可以獲取Java各類入門學(xué)習(xí)資料!

這是我的微信公眾號【編程study】各位大佬有空可以關(guān)注下,每天更新Java學(xué)習(xí)方法,感謝!

學(xué)習(xí)中遇到問題有不明白的地方,推薦加小編Java學(xué)習(xí)群:697699179內(nèi)有視頻教程 ,直播課程 ,等學(xué)習(xí)資料,期待你的加入

一: 編程基礎(chǔ)

不管是Java還是PHP,不管是C還是C++,想成為一名合格的程序員,基本的數(shù)據(jù)結(jié)構(gòu)和算法基礎(chǔ)還是要有的。下面幾篇文章從思想到實現(xiàn),為你梳理出常用的數(shù)據(jù)結(jié)構(gòu)和經(jīng)典算法。

1-1 常用數(shù)據(jù)結(jié)構(gòu)

數(shù)組、鏈表、堆、棧、隊列、Hash表、二叉樹等

1-2 算法思想

算法時間復(fù)雜度和空間復(fù)雜度的分析計算

算法思想:遞推、遞歸、窮舉、貪心、分治、動態(tài)規(guī)劃、迭代、分枝界限

1-3 經(jīng)典算法

經(jīng)典排序:插入排序、冒泡排序、快排(分劃交換排序)、直接選擇排序、堆排序、合并排序

經(jīng)典查找:順序查找、二分查找、二叉排序樹查找

1-4 高級數(shù)據(jù)結(jié)構(gòu)

B+/B-數(shù)、紅黑樹、圖等

1-5 高級算法

圖的深度優(yōu)先搜索、圖的廣度優(yōu)先搜索、拓?fù)渑判?、Dijkstra算法(單源最短路徑)、霍夫曼編碼、輾轉(zhuǎn)相除法、最小生成樹等

二:Java語言基礎(chǔ)

誕生不過二十余年的Java語言憑借其跨平臺、面向?qū)ο蟆⑦m合于分布式計算的特性,廣泛應(yīng)用于Web網(wǎng)站、移動設(shè)備、桌面應(yīng)用中,并且已經(jīng)連續(xù)多年穩(wěn)居TOBIE編程語言排行榜前列,最近更是登上冠軍寶座。Java有哪些優(yōu)秀而又與眾不同的地方首先一定要清楚。

2-1 基礎(chǔ)語法

Java語法格式,常量和變量,變量的作用域,方法和方法的重載,運(yùn)算符,程序流程控制,各種基本數(shù)據(jù)類型及包裝類

2-2 重要:集合類

Collection以及各種List、Set、Queue、Map的實現(xiàn)以及集成關(guān)系,實現(xiàn)原理

Collections和Arrays

2-3 其他JavaAPI

String和StringBuffer,System和Runtime類,Date和DateFomat

java.lang包

java.util包(集合類體系、規(guī)則表達(dá)式、zip,以及時間、隨機(jī)數(shù)、屬性、資源和Timer等)

java.math包

http://java.net

java.text包(各種格式化類等)

java.security包

2-4 面向?qū)ο?、面向接?/b>

對象的三大特性:封裝、繼承和多態(tài),優(yōu)缺點

如何設(shè)計類,類的設(shè)計原則

this關(guān)鍵字,final關(guān)鍵字,static關(guān)鍵字

對象的實例化過程

方法的重寫和重載;方法和方法的參數(shù)傳遞過程

構(gòu)造函數(shù)

內(nèi)部類,抽象類,接口

對象的多態(tài)性(子類和父類之間的轉(zhuǎn)換、父類紙箱子類的引用),抽象類和接口在多態(tài)中的應(yīng)用

2-5 JVM內(nèi)存模型、垃圾回收

2-6 關(guān)于異常

Throwable/Error/Exception,Checked Exception vs. Unchecked Exception,異常的捕捉和拋出,異常捕捉的原則,finally的使用

2-7 多線程

線程和進(jìn)程的概念

如何在程序中創(chuàng)建多線程,線程安全問題,線程之間的通訊

線程的同步

死鎖問題的剖析

線程池

2-8 IO

http://java.io包,理解IO體系的基于管道模型的設(shè)計思路以及常用IO類的特性和使用場合。

File及相關(guān)類,字節(jié)流InputStream和OutputStream,字符流Reader和Writer,以及相應(yīng)緩沖流和管道流,字節(jié)和字符的轉(zhuǎn)化流,包裝流,以及常用包裝類使用

分析IO性能

2-9XML

熟悉SAX、DOM以及JDOM的優(yōu)缺點并且能夠使用其中的一種完成XML的解析及內(nèi)容處理;這幾種解析方法的原理

2-10 一些高級特性

反射、代理、泛型、枚舉、Java正則表達(dá)式

2-11 網(wǎng)絡(luò)編程

網(wǎng)絡(luò)通信協(xié)議原理及適用場景,Socket編程,WEB服務(wù)器的工作原理

2-11 JDK1.5、JDK1.6、JDK1.7、JDK1.8每個版本都比前面一個版本添加了哪些新特性,進(jìn)行了哪些提升

三:數(shù)據(jù)庫相關(guān)

前面說到了數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫簡單來說就像是電子化的檔案柜,是按照一定的數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫。

3-1理論基礎(chǔ)

數(shù)據(jù)庫設(shè)計原則和范式

事務(wù)(ACID、工作原理、事務(wù)的隔離級別、鎖、事務(wù)的傳播機(jī)制)

3-2 各種數(shù)據(jù)庫優(yōu)缺點、使用場景分析

MySQL/SQLServer/Oracle以及各種NoSQL(Redis、MongoDB、Memcached、HBase、CouchDB等)

3-2 SQL語句

數(shù)據(jù)庫創(chuàng)建,權(quán)限分配,表的創(chuàng)建,增刪改查,連接,子查詢

觸發(fā)器、存儲過程、事務(wù)控制

3-3 優(yōu)化

索引原理及適用,大表查詢優(yōu)化,多表連接查詢優(yōu)化,子查詢優(yōu)化等

3-4 分庫、分表、備份、遷移

導(dǎo)入、導(dǎo)出,分庫、分表,冷備熱備,主從備份、雙機(jī)熱備、縱向擴(kuò)展、橫向擴(kuò)展

3-5 JDBC

JDBC Connection、Statement、PreparedStatement、CallableStatement、ResultSet等不同類的使用

連接池(配置使用、實現(xiàn)原理)

ORM,DAO

四:JavaWeb核心技術(shù)(包括部分前端)

Html5/Css/JS原生/jQuery

Ajax(跨域等)

JSP/JavaBean/Servlet/EL/JSTL/TabLib

JSF

JSON

EJB

序列化和反序列化

規(guī)則引擎

搜索引擎

模板引擎

緩存

身份認(rèn)證

測試

集群

持久化

生成靜態(tài)頁技術(shù)

高性能

安全

事務(wù)JTA

其他需要了解的,如:管理JMX、安全JCCA/JAAS、集成JCA、通信JNDI/JMS/JavaMain/JAF、SSI技術(shù)

五、主流框架及工具

Struts1/Struts2

Spring(IoC、AOP等),SpringMVC

持久化:Hibernate/MyBatis

日志:Log4j

單元測試:JUnit

消息隊列:ActiveMQ、RabbitMQ等

負(fù)載均衡:Nginx/HaProxy

Web服務(wù)器:Tomcat、JBoss、Jetty、Resin、WebLogic、WebSphere等

通信:WebService(cxf的soap、restful協(xié)議)

緩存:Redis、Memcached

工作流:Activity、JBPM

搜索引擎:lucene,基于lucene封裝的solr

模板引擎:Velocity、FreeMaker

大數(shù)據(jù):Hadoop(HDFS和MapReduce)

構(gòu)建工具:Ant/Maven

六、JavaWeb系統(tǒng)設(shè)計與架構(gòu)

Java設(shè)計模式

JAVA與UML建模

面向服務(wù)架構(gòu):SOA/SCA/ESB/OSGI/EAI,微服務(wù)

面向資源架構(gòu):ROA/REST

面向云架構(gòu):COA/Saas/云計算

大型網(wǎng)站負(fù)載均衡、系統(tǒng)調(diào)優(yōu)等

七、More

排錯能力:

應(yīng)該可以根據(jù)異常信息比較快速的定位問題的原因和大致位置

優(yōu)化能力

代碼規(guī)范、代碼管理:

有自己的代碼規(guī)范體系,代碼可讀性好

知識面廣:

懂各種網(wǎng)絡(luò)產(chǎn)

品及特性,懂各種中間件,能夠知道坑在哪兒,深諳各種技術(shù)方案的優(yōu)缺點,懂整合各種資源并達(dá)到最優(yōu)....了解各種技術(shù)及應(yīng)用場景,有足夠的工作經(jīng)驗解決集成中遇到的各種奇葩問題

技術(shù)管理/技術(shù)總監(jiān):

產(chǎn)品管理、項目管理、團(tuán)隊建設(shè)、團(tuán)隊提升

CTO:

發(fā)展戰(zhàn)略

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容