怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不只一个刚刚踏入职场的初级程序员也是工做三五年以后开始迷茫的老程序员常常会问到的问题。但愿这篇文章会是你看到过的最全面最权威的回答。nginx
** 一: 编程基础**程序员
不论是C仍是C++,不论是Java仍是PHP,想成为一名合格的程序员,基本的数据结构和算法基础仍是要有的。下面几篇文章从思想到实现,为你梳理出经常使用的数据结构和经典算法。 web
1-1 经常使用数据结构正则表达式
数组、链表、堆、栈、队列、Hash表、二叉树等redis
1-2 算法思想算法
算法时间复杂度和空间复杂度的分析计算spring
算法思想:递推、递归、穷举、贪心、分治、动态规划、迭代、分枝界限数据库
1-3 经典算法编程
经典排序:插入排序、冒泡排序、快排(分划交换排序)、直接选择排序、堆排序、合并排序
经典查找:顺序查找、二分查找、二叉排序树查找
1-4 高级数据结构
B+/B-数、红黑树、图等
1-5 高级算法
图的深度优先搜索、图的广度优先搜索、拓扑排序、Dijkstra算法(单源最短路径)、霍夫曼编码、展转相除法、最小生成树等
** 二:Java语言基础**
诞生不过二十余年的Java语言凭借其跨平台、面向对象、适合于分布式计算的特性,普遍应用于Web网站、移动设备、桌面应用中,而且已经连续多年稳居TOBIE编程语言排行榜前列,最近更是登上 冠军宝座。Java有哪些优秀而又不同凡响的地方首先必定要清楚。
2-1 基础语法
Java语法格式,常量和变量,变量的做用域&#