Java Web 学习路线
Author:@Zealot
Date:2018/10/22
. 前言
本文用于 NMID 内部技术交流,各模块阐述比较笼统,具体学习细节靠自己和参考学习手册。
菜鸡一枚,欢迎各位大佬提出任何建议,将不胜感激。
. 导图
- 整体图
来自牛客网 - Java SE
Java SE - Java EE
Java EE - Another Version
阿里云版本
. 0 走进计算机的世界
- 《浪潮之巅》 吴军 人民邮电出版社
讲述IT行业兴衰史。 - 《计算机导论》 杨继萍 钱伟 清华大学出版社
科普向,介绍计算机基础知识。 - 《计算机科学导论》 Behrouz Forouzan 机械工业出版社
大学计算机相关专业的基础课教材,涉及计算机科学的各个方面。着重讲解基本概念而不是数学模型和技术细节。 - 《计算机科学概论》 J. Glenn Brookshe 人民邮电出版社
国外顶尖大学教材,描绘计算机科学各个子学科主要领域。
. 1 基础知识
- 可以看下教务在线提供的教学大纲和考纲以做更多了解
- C语言程序设计 ★★★★★
基本数据类型、关系运算符、程序结构流程控制、指针、结构体、文件操作、面向过程编程思想 - 数据结构 ★★★★★
各种数据结构基本概念和特点,各种数据结构的增删查改操作实现算法、各种数据结构的应用场景、常见排序查找算法的特点和实现
推荐书籍:《大话数据结构》程杰 - 计算机网络 ★★★★★
OSI七层模型各层功能和常见协议,网络层(IP)、运输层(TCP/UDP)、应用层(HTTP/DNS/FTP/SMTP)及其对应端口。
IP:帧结构,各类地址,划分子网等
TCP:协议特点、三次握手和四次挥手过程和原理、如何进行流量控制
UDP:协议特点、与TCP的比较
HTTP:报文结构、工作流程和原理
DNS:工作流程和原理 - 算法分析与设计 ★★★★★
算法复杂度分析、常见算法思想:贪心、动态规划等等
推荐书籍:《算法设计与分析基础》第三版 Anany Levitin 清华大学出版社 译者:潘彦
刷题!刷题!刷题!牛客 & LeetCode & CodeForces - 数据库原理 ★★★★★
模式、ER关系、常用SQL(DDL,DML)、三大范式等
非科班的以下科目找书来浏览一遍(没学过,不多说)
- 计算机组织与结构 ★★★★
- 操作系统 ★★★★(内存/线程/进程)
- 软件工程 ★★★★(项目工程)
- 编译原理 ★★★
. 2 Java SE
- 建议先看完视频再看书
推荐书籍:Head First Java / Java核心技术 / Effective Java - 基本语法,常用接口(看API)
Date,Sql,Math,Calendar,Arrays,Collections,Atomic,Concurrent,包装类等 - 面向对象
面向对象编程思想
类&对象,其结构,代码初始化顺序,相互调用等
三大特点(封装、继承、多态)的具体细节 WHAT & WHY & HOW - 异常
- Java并发编程
基本概念(同异步,并发行,阻塞,死锁等);
线程基本操作,线程6种状态,线程间通信,线程池使用,JDK并发包等 - String & StringBuffer & StringBuilder
源码,特点,异同 - 集合框架
List,Map,Set,Tree,Queue,Stack
熟悉整个框架体系结构(UML图),看源码分析,掌握底层数据结构,实现原理和特点,扩展机制,适用场景等
掌握泛型机制,具备利用泛型开发的抽象思想 - IO 流
文件基本操作(读写),字节流,字符流,File类等
可以自己写个HttpUtilAPI - 网络编程
Socket,NIO(结合并发编程),TCP&UDP方式等实现通信 - 反射(框架灵魂)
WHAT,WHY,HOW,在框架中的应用
Class类,如何获得并调用类的属性和方法等
. 3 JVM
- JVM启动
JVM生命周期 - VM常用参数配置
- 类与对象
对象表示机制,类状态转换(Class文件格式、加载链接初始化过程)
双亲委派机制
实例创建流程 - 运行时数据区
内存模型,各区作用和特性(堆、栈、方法区、PC计数器)
永久代,新生代,老年代(特点,分区,如何晋升等) - GC(垃圾收集)
回收算法:标记清除,复制,标记压缩
分代收集 - 垃圾收集器
串行/并行,CMS,G1收集器 - 调优分析
查看配置JVM,GC日志
jinfo
jstat
jstack
. 4 设计模式(23种)
- 单例模式
特点及应用场景
必会:手写单例(饿汉,懒汉,内部类),能区分三种方式的异同优劣 - 其他
常见设计模式:责任链,代理,适配器,桥接,装饰等
掌握思想,经典实现,使用情况等
. 5 Mysql
- 推荐书籍:Mysql必知必会 / 高性能Mysql / Mysql技术内幕(偏DBA)
- 体系结构
组成模块 - Sql
AUID,Sql优化,Sql分析,Sql执行流程 - 存储引擎
Innodb,Mysiam,Memory各自特点和应用场景 - 隔离级别
- 索引
优缺点,原理,实现细节,数据结构(B,B+树原理) - 视图
- 存储过程
. 7 (Web) Servlet & JSP
- 推荐书籍:《Java Web开发详解》孙鑫
- 掌握MVC模型
看书吧,略过了。
. 8 服务器
- Tomcat
启动分析,体系结构 - Nginx
反向代理 - Jetty
. 9 Linux
- 资源:Linux初学者(学习资料) - 路人甲的文章 - 知乎
- 文件结构
- 系统管理命令
权限,防火墙,端口,进程,文件(查看,解压,移动,删除等) - Shell编程
. 10 敏捷开发&协作开发
- IDEA
项目构建流程、常用快捷键、各种黑科技(目的都是为了效率)、代码调试 - Maven/Gradle
命令、依赖格式、异同等 - 前端调试
接口测试、google控制台(F12) - Github
常见操作(Clone,Commit,Push,Merge,Star,Fork等) - Git
如上点常见命令,操作要规范,语句要明确
. 11 (Web) Spring
- 上手做最重要
核心模块,DI,IOC,AOP,注解,拦截器,SpringMVC
. 12 (Web) Mybatis
- 上手做最重要
. 13 (Web) SpringBoot
- 上手做最重要
了解原理、基于Spring来体会SpringBoot带来的不同
. 14 NoSql
- Redis
推荐书籍:Redis开发与运维 / Redis设计与实现
底层原理,数据结构,常见命令,通信协议,Jedis,持久化,复制,哨兵,集群。缓存设计等等 - MongoDB&Memcached
不了解,不多哔哔 - 至少掌握一个,了解所有的,说得出异同
. 15 分布式
- 负载均衡/分布式数据库/分布式应用集群
- RPC
- Dubbo
- ZooKeeper
. 16 缓存
- Redis
- Memcached
- Ehcache
- 等等
. 17 消息队列
- ActiveMQ/Rabbitmq等
. 18 人文
- 技术之瞳——阿里巴巴技术笔试心得
- 卓有成效的程序员
- 程序员修炼之道
- 禅与摩托车维修艺术
- 颈椎病康复指南 (╯°Д°)╯( ┻━┻