Java学习路径

第一部分:Java基础

变量

控制结构

  • 顺序结构

  • 循环

  • 分支

OOP

  • 封装

  • 继承

  • 多态

数组

JAVA API

异常和处理

集合

泛型

IO

反射

网络通信

Mysql基础

  • SQL

  • JDBC

    • PreparedStatement

    • JDBCUtils

    • 事务

  • 连接池

    • c3p0

    • DBCP

    • Druid(德鲁伊,阿里推荐)

第二部分:Java 高级

Java 多线程 / 高并发

  • 并发基础

    • 互斥同步

    • 非阻塞同步

    • 指令重排

    • synchronized

    • volatile

  • 线程

    • 自旋锁

    • 偏向锁

    • 可重入锁

  • 线程池

  • 并发容器

  • JUC

    • executor

    • collections

    • locks

    • atomic(原子类)

    • tools(CountDownLatch,Exchanger,ThreadLocal,CyclicBarrier)

数据结构和算法

  • 数据结构

    • 数组(稀松数组)

    • 队列

    • 链表

    • 散列

  • 算法

    • 排序(八种)

    • 查找

    • 分治

    • 动态规划(背包问题)

    • 回溯(骑士周游问题)

    • 贪心算法

    • KMP

    • Prim

    • floyd-最短路径

    • Dijkstra-最短路径

设计模式

  • 单例模式

  • 观察者模式

  • 工厂模式

  • 适配器模式

  • 装饰者模式

  • 代理模式

  • 模版模式

  • 职责链模式

  • 其他(组合模式,桥接模式,原型模式···)

JVM

  • JVM 体系

  • 类加载过程/机制

  • 双亲委派机制 / 沙箱安全机制

  • JMM(Java 内存模式)

  • 字节码执行过程/机制

  • GC(垃圾回收机制)

  • JVM 性能监控和故障定位

  • JVM 调优

第三部分:Java web

前端基础

  • html

  • css

  • JavaScript

  • Ajax

  • Jquery

前端框架(可弱化)

  • VUE

  • React

  • Angular

  • bootstrap

  • Node.js

Java web后端

  • Tomcat

  • Servlet

  • JSP

第四部分:主流框架和项目管理

Linux(必学)

Nginx(做反向代理的web服务器)

SSM

  • Spring(轻量级的容器框架)

  • SpringMVC(分层的web开发框架)

  • MyBatis(持久化框架)

项目管理

  • Maven

  • Git & GitHub

  • SVN(过时)

数据库

  • Redis

  • Mysql

  • Oracle

其他框架

  • WebService(即SOA)

  • Activiti(工作流框架/引擎)

  • Shiro(安全引擎)

  • Spring Security(安全框架)

  • JPA(持久化)

  • SpringData(是持久层的通用解决方案)

第五部分:分布式 微服务 并行架构

Netty

Dubbo(PRC框架)

FastDFS(分布式的文件系统)

Docker(应用容器引擎)

Spring 家族

  • Spring Boot

  • Spring Cloud(组件很多)

    • Nacos(阿里,服务发现,配制和管理)

    • Seata(阿里,分布式事务的中间件)

    • Sentinel(阿里,流量控制,熔断,系统负载保护)

    • GateWay(网关,限流,日志,监控,鉴权)

搜索引擎

  • ElasticSearch

  • Solr

中间件

  • MyCat(数据库中间件,分库分表)

  • 消息中间件

    • ActiveMQ

    • RabbitMQ

    • Kafka

日志分析与监控(ELK)

  • ElasticSearch(搜集,存储数据)

  • LogStash(分析日志)

  • Kibana(可视化)

Zookeeper(一致性服务:比如配置维护,域名维护,分布式同步)

第六部分:DevOps(开发运维一体化)(自动化部署管理项目)

  • k8s(让部署容器化的应用简单高效)
  • 普罗米修斯(prometheus)(系统监控和报警)
  • Jenkins(监控持续的工作,比如部署、集成、交付)
  • Harbor(容器的镜像仓库)
  • GitLab
  • sonarqube(项目工程代码质量检测)

第七部分:大数据技术(可以弱化)

  • Hadoop
  • Hive
  • Impals
  • spark
  • flink

第八部分:项目

电商

金融

教育

直播

CRM,ERP

第九部分:大厂的高频面试题

重点关注

  • 第二部分:Java 高级

  • SSM

  • 数据库

  • Spring 家族

  • Netty

  • 中间件

  • 项目

第十部分:底层源码 / 内核研究

编程基础扩展

计网

操作系统

编译原理

离散数学

数值分析

计组

汇编语言