java后端学习路线总结

一、

1、java语言

(1)编程基础

基础语法、面向对象、接口、容器、异常、泛型、反射、注解、IO

(2)jvm

类加载机制、字节码执行机制、jvm内存模型、GC垃圾回收、JVM性能监控与故障定位、jvm调优

(3)多线程/并发

并发编程的基础(指令重排序、原子性、并发性等)、线程池、锁、并发容器、原子类、JUC并发工具

2、数据结构和算法

(1)数据结构

字符串、数组、链表、堆、栈、队列、二叉树、哈希、图

(2)算法

排序、查找、贪心、分治、动态规划、回溯

3、计算机网络

ARP协议、IP协议、ICMP协议、TCP协议、UDP协议、DNS协议、HTTP协议、HTTPS协议、session、cookie

4、数据库

sql语句的书写、sql语句的优化、事务、隔离级别、索引、锁

5、操作系统

进程、线程、并发、锁、内存管理和调度、IO原理

6、设计模式

单例、工厂、代理、策略、模板方法、关联者、适配器、责任链、建造者

7、研发工具

(1)开发工具

eclipse、INEA、vscode

(2)Linux系统

常用命令、shell脚本

(3)代码管理工具

SVN、Git

(4)项目管理/构建工具

Maven、Gradle

8、框架(后端)

(1)spring家族框架

spring(IoC、AOP)、springmvc、spring boot(自动配置、开箱即用、整合web、整合数据库(事务问题)、整合权限(Shiro、Spring Security)、整合各种中间件(Redis、MQ、RPC框架、NIO框架))

(2)服务器软件

web服务器(Nginx)、应用服务器(Tomcat、Jetty、Undertow)

(3)中间件

缓存(Redis(5大基础数据类型、事务、管道、持久化、集群)、消息队列(RocketMQ、RabbitMQ、Kafka)、RPC框架(Dubbo、gRPC、Thrift、Spring Cloud、Netty))

(4)数据库框架

mybatis、hibernate、jpa、连接池(Druid、HikraiCP、C3P0)、分库分表(MyCAT、Sharding-JDBC、Sharding-Sphere)

(5)搜索引擎

ElasticSearch、Solr

(6)分布式/微服务

服务发现注册(Eureka、Consul、Zookeeper、Nacos)、网关(Zuul、Gateway)、服务调用(Ribbon、Feign)、熔断/降级(Hystrix)、配置中心(Config、Apollo、Nacos)、认证和鉴权(Spring Security、OAuth2、SSO单点登录)、分布式事务(JTA接口(Atomikos组件、2PC、3PC)、XXA模式、TCP模式(tcc-transcation\ByteTCC、EasyTrabscation、Seata)、SAGA模式(ServiceComb、Seata)、LCN模式(tx-lcn)、任务调度(Quartz、Elastic-Job)、链路追踪与监控(Zipkin、Sleuth、Skywalking)、日志分析与监控(ElasticSearch、Logstash、Kibana))

(7)虚拟化/容器化

容器技术(Docker)、容器编排技术(Kubernetes、Swarm)

9、前端

(1)基础

三大件(html、JavaScript、css)、jQuery、Ajax

(2)模板框架

jsp/jstl、Thymeleaf、FreeMarker

(3)组件化框架

Vue、React、Angular、Node

10、运维知识

web服务器(Nginx)、应用服务器(tomcat、Jetty、Undertow)、CDN加速、持续集成/持续部署(Jenkins)、代码质量检查(sonar)、日志收集和分析(ELK)

二、

要掌握的知识

(1)前端(后端工程师要懂得前端知识):html、css、js、jq(ajax、json、选择器)、框架(BootStrap)、日期组件(laydate)、图表统计(echarts.js)、数据结点、(ZTree.js)、vue(使用比较广泛的一个js组件)

(2)javase部分

基本数据类型、引用、jvm、递归、继承、多态、反射、泛型、集合

设计模式(单例、懒汉、饿汉、工厂设计模式(简单、方法、抽象)模板、适配器、代理(静态、动态))

线程等

(3)数据结构:数组、堆栈、二叉树、红黑树(java中的TreeSet和Linux的虚拟内存管理都是使用红黑树来实现的)、链表(双向、单向)、hash

(4)数据库

Oracle和MySql

(5)javaee

jsp、jstl标签库、servlet

(6)框架

ssh(struts、spring、hibernate)

ssm(spring、springmvc、mybatis)

理解:AOP、IoC、依赖注入、任务调度等概念

SpringBoot:简化配置文件

SpringCloud:微服务开发的

Shrio:实现登录认证等操作,SpringSecurrity可以实现相同的功能

(7)数据库连接池(Druid、C3p0)

(8)Linux

简单命令(安装jdk、数据库、web服务器安装、安装redis、Nginx,在上面部署和启动项目,观察项目的动态日志等)

(9)redis(缓存性数据库,nosql)

可以保存的数据类型、主动配置、高并发配置、高可用配置、乐观锁、悲观锁

(10)Nginx

反向服务器的配置

三、

1、数据库(例:MySQL)
(1)增删改查(2)三范式(3)表设计(4)主外键
(5)关联查询(left join、right join、inner join)
(6)数据库函数使用(7)mysql的四大特性(8)四种隔离级别..
2、数据库拔高
(1)全局锁,表锁,行锁,死锁,乐观锁,悲观锁..
(2)索引,索引底层实现原理,存储方式,如何创建索引,优化索引..
3、Java后端
(1)Java基础(2)Java的集合: list,map(3)多线程,线程池
(4)juc下的锁(5)io和nio(6)JavaWeb,重点是JavaEE的框架
如:Spring, SpringMVC, SpringBoot, SpringSecurity, SpringData, Shiro, Hibernate, MyBatis等等
提醒:springboot框架火,必学,了解spring的实现原理,如ioc&aop,struts公司用的少
4、缓存和操作糸统
(1)redis基本数据类型和各种常用命令,数据持久化,持久化恢复
(2)linux常用命令,重点学linux如何查看日志
5、前端方面
JavaScript, Ajax, Jquery, html, css, 前后端的http通信方式
如:restful风格,请求头,请求体,请求方式
6、编程工具
idea, eclipse, maven, gradle, git, svn, navicat, sqlyog, postman, jemter, xshell, xftp, visualVM..
7、高级知识点
(1)数据库主从复制,集群搭建,读写分离,分库分表,如:sharding-jdbc, mycat
(2)对于上面的初中级知识点,学实现原理,阅读源玛
(3)redis主从复制,哨兵机制,redis集群搭建
(4)微服务框架spring cloud
(5)rpc框架dubbo
(6)JVM: 组成结构,垃圾回收,jvm优化
(7)网络通信框架netty
(8)分布式: zookeeper, elastic-search, kafaka,nginx, elastic-job, 分布式锁, 分布式事务..
(9)高并发下的服务熔断,降级,限流,分布式缓存架构,缓存血崩,穿透

猜你喜欢

转载自www.cnblogs.com/zhai1997/p/12918621.html