从程序员到架构师进阶,将涉及到数据结构和算法,Java编程语言掌握,Javaweb核心技术,数据库,Java框架与必备工具,系统架构设计等六大环节。
由于篇幅过大,故分为上下两篇。
本文作者 陈睿,优知学院创始人,10年上产品技术经验,前百度研发经理,携程定制旅游CTO。优知学院是IT人在线进阶站,帮助IT人升职加薪,提供系统的互联网产品技术入门指南、进阶干货资料和课程,以及定期的线下实战活动。
编程基础:数据结构和算法
1 算法分析与计算
算法时间复杂度和空间复杂度的分析计算
2.算法思想
递推、递归、穷举、贪心、分治、动态规划、迭代、分枝界限
3常用数据结构
数组、链表、堆、栈、队列、Hash表、二叉树等
4经典算法
排序
经典排序:插入排序、冒泡排序、快排(分划交换排序)、直接选择排序、堆排序、合并排序等
查找
经典查找:顺序查找、二分查找、二叉排序树查找
java语言掌握
Java语言基础
1语言基础
Java语法格式,常量和变量,变量的作用域,方法和方法的重载,运算符,程序流程控制,各种基本数据类型及包装类
2面向对象基础
面向对象编程思想,类与对象,成员变量和局部变量,封装,this关键字,final关键字,static关键字。
3 常用集合使用
Collection以及各种List、Set、Queue、Map的实现以及集成关系,实现原理。
ArrayList,HashMap等常用集合优劣比较。
Java语言高级
1.面向对象高级
对象的三大特性:封装、继承和多态,优缺点
如何设计类,类的设计原则。
构造函数,内部类,抽象类,接口,对象的多态性,接口和抽象类的区别。
2.异常处理
Throwable/Error/Exception,Checked Exception vs. Unchecked Exception,异常的捕捉和抛出,异常捕捉的原则,finally的使用
3.多线程
创建与启动
线程和进程的概念
如何在程序中创建多线程,线程安全问题,线程之间的通讯
线程的同步与锁
死锁问题的剖析
线程生命周期
线程池
4.输入与输出
java.io包,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。
File及相关类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应缓冲流和管道流,字节和字符的转化流,包装流,以及常用包装类使用
分析IO性能
5.反射
类加载机制原理
反射构造方法、字段、方法
Properties配置文件
代理、泛型、枚举、Java正则表达式等
6.网络编程
网络机制
Socket原理机制
UDP、TCP传输等
7.JVM深入理解
一定要深入理解JVM原理,JVM内存划分、class加载机制以及GC策略等。
内存划分,Young Generation(年轻代)、Old Generation(年老代)以及Perm Generation(永久代)。
java web 核心技术
1.前段技术
html、css语法
css需要学习原生态,对css继承等掌握
js原生语法,js原生继承等的掌握
jquery
bootstrap
2.Java Web
建议把java web从容器启动到request、filter、listener了解原理,最好的方法就是通过调试代码一层层断点进入了解源码。
3.模板引擎
常见的模板引擎的语法掌握以及源码查看
4.其他
高性能
安全
事务JTA
其他需要了解的,如:管理JMX、安全JCCA/JAAS、集成JCA、通信JNDI/JMS/JavaMain/JAF、SSI技术。
下篇将会涉及到数据库的设计和分库分表等常见的性能优化策略,以及nosql(memcaced,redis,mongoDB,Hbase)的选取策略,还有架构设计文档模板案例,架构设计重点章节,以及分布式集群、高并发等策略。
更多java程序员进阶架构师系列文章,请访问优知学院官网www.youzhixueyuan.com获取。