Java Web 学习路线
Author:@Zealot
Date:2018/10/22前端
. 前言
本文用于 NMID 内部技术交流,各模块阐述比较笼统,具体学习细节靠本身和参考学习手册。
菜鸡一枚,欢迎各位大佬提出任何建议,将不胜感激。java
. 导图
- 总体图
来自牛客网
- 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)、三大范式等
非科班的如下科目找书来浏览一遍(没学过,很少说)mysql
- 计算机组织与结构 ★★★★
- 操做系统 ★★★★(内存/线程/进程)
- 软件工程 ★★★★(项目工程)
- 编译原理 ★★★
. 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
. 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 消息队列
. 18 人文
- 技术之瞳——阿里巴巴技术笔试心得
- 卓有成效的程序员
- 程序员修炼之道
- 禅与摩托车维修艺术
- 颈椎病康复指南 (╯°Д°)╯( ┻━┻
. 参考
. End