Java Web 学习路线

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 人文

  • 技术之瞳——阿里巴巴技术笔试心得
  • 卓有成效的程序员
  • 程序员修炼之道
  • 禅与摩托车维修艺术
  • 颈椎病康复指南 (╯°Д°)╯( ┻━┻

. 参考

  • 阿里巴巴、美团等各大互联网公司的 Java 类校招对本科生的要求是什么?-谢照东的回答 - 知乎
  • 我的知乎收藏

. End

你可能感兴趣的:(Java Web 学习路线)