zoukankan      html  css  js  c++  java
  • Java后端知识体系

    基础重点(必须扎实)

    Java语言

    • 语言基础 《Java核心技术》

      • 基础语法
      • 面向对象
      • 常用API
      • 异常处理
      • 集合
      • IO
      • 多线程
      • 网络编程
      • 泛型
      • 反射
      • 注解
    • JVM 《深入理解Java虚拟机》

      • 类加载机制

        • 双亲委托
      • 字节码执行机制

      • JVM内存模型

        • 堆区
        • 虚拟机栈
        • 方法区
      • GC垃圾回收

      • JVM性能监控与故障定位

      • JVM调优

    • 多线程、锁、并发 1:《Java并发编程的艺术》、2:《Java并发编程实战》

      • 并发编程基础

      • 线程池

        • 乐观锁、悲观锁
        • 互斥锁、共享锁
        • 可重入锁、偏向锁
        • 轻量级锁、CAS与自旋锁
      • 并发容器

      • 原子类

      • JUC并发工具类

    • 网络编程

      • 学习路径

        • Socket API + 多线程 + 网络模型/IO模型 + IO复用
        • Netty
      • 核心点

        • 进程间通信方式:信号量、管道、共享内存、socket 等
        • 多线程编程:互斥锁、条件变量、读写锁、线程池等
        • 五大 IO 模型:同步、异步、阻塞、非阻塞、信号驱动
        • 高性能 IO 两种模式:Reactor 和 Proactor
        • IO 复用机制:epoll、select、poll(破解 C10K 问题的利器)
    • Java源码

    数据库/SQL

    • 《SQL必知必会》、《高性能MySQL》

    • SQL语句

      • 手写SQL

        • 联表
        • 聚合
    • SQL语句优化

    • 事务、隔离级别

    • 索引

    数据结构与算法

    • 《漫画算法》、《算法》

    • 数据结构

      • 字符串
      • 数组
      • 链表
      • 队列
      • 二叉树
      • 哈希
    • 算法

      • 十大排序
      • 查找、二分
      • 贪心
      • 分治
      • 动态规划
      • 回溯

    设计模式

    • 《重学Java设计模式》
    • 单例
    • 工厂
    • 代理
    • 策略
    • 模板方法
    • 观察者
    • 适配器
    • 责任链
    • 建造者
    • 。。。。

    计算机网络

    • 《计算机网络:自顶向下方法》

    • HTTP、TCP、IP、ICMP、UDP、DNS、ARP

    • IP地址、MAC地址、OSI七层模型(或者 TCP/IP 五层模型)

    • HTTPS安全相关的:数字签名、数字证书、TLS

    • 常见网络攻击:局域网ARP泛洪、DDoS、TCP SYN Flood、XSS等

    • TCP协议(最重要)

      • TCP协议

        • 三次握手、四次挥手
        • 状态转换
        • TCP状态中TIME_WAIT
        • 拥塞控制
        • 快速重传、慢启动
      • 问题

        • TCP 如何实现可靠传输的(画外音:如何基于 UDP 实现可靠传输)
        • TCP 连接建立为什么不是两次握手(画外音:三次握手的充分必要性说明)
        • TIME_WAIT 的存在解决了什么问题,等待时间为什么是 2 MSL
      • 核心

        • 可靠传输 + 高效传输(流量控制和窗口管理)
    • HTTP、HTTPS

      • 从 URL 输入到页面展现到底发生什么
    • 学习方法

      • 学习抓住一条主线

        • 一个数据包是如何发送出去的
      • 带着问题去思考为什么这么做

    操作系统

    • 《现代操作系统》

    • 进程管理

    • 并发、同步互斥、锁

    • 内存管理

    • 文件系统

    • 重点

      • OS四大模块的理论知识

        • 进程与线程管理
        • 内存管理
        • IO与文件系统
        • 设备管理
      • 了解Linux内核部分实现原理

        • 内存管理
        • 进程管理
        • 虚拟文件系统
      • 与编程最密切

        • 内存
        • 进程
        • IO
    • 认知

      • 操作系统由哪些构成
      • 进程的状态、切换、调度
      • 进程间通信方式(共享内存、管道、消息)
      • 进程和线程的区别
      • 线程的实现方式(一对一、多对一等)
      • 互斥与同步(信号量、管程、锁)
      • 死锁检测与避免
      • 并发经典的问题:读者写者、哲学家就餐问题
      • 为什么需要虚拟内存,MMU 具体如何做地址转换的
      • 内存为什么分段、分页
      • 页面置换算法
      • 文件系统是如何组织的
      • 虚拟文件系统(VFS)是如何抽象的
      • 。。。。

    应用框架

    后端

    • JSP、Servlet

    • Spring家族

      • Spring

        • IOC
        • AOP
      • Spring MVC

      • MyBatis

      • SSM

        • 打war包
        • Tomcat运行
      • Spring Boot

        • 打jar包

          • 内嵌Tomcat

            • 微服务架构
        • 知识点

          • 自动配置、开箱即用

          • 整合Web

          • 整合数据库(事务问题)

          • 整合权限

            • Shiro
            • SpringSecurity
          • 各种中间件

            • 缓存

            • MQ

            • RPC框架

              • Dubbo
            • NIO框架

              • Netty
      • Spring Cloud

        • Netflix

          • Eureka

            • 服务治理组件,包括服务端的注册中心和客户端的服务发现机制。
          • Ribbon

            • 负载均衡的服务调用组件,具有多种负载均衡调用策略。
          • Hystrix

            • 服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力。
          • Feign

            • 基于Ribbon和Hystrix的声明式服务调用组件。
          • Zuul

            • API 网关服务,过滤、安全、监控、限流、路由。
        • Alibaba

          • Nacos

            • 阿里巴巴开源产品,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
          • Sentinel

            • 面向分布式服务架构的轻量级流量控制产品,把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
          • RocketMQ

            • 一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
          • Dubbo

            • Apache Dubbo 是一款高性能 Java RPC 框架,用于实现服务通信。
          • Seata

            • 阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
        • Config

          • 分布式配置中心。配置管理工具,支持使用 Git 存储配置内容,支持应用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等。
        • Bus

          • 事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。
        • Consul

          • 服务注册和配置管理中心。
        • Security

          • 安全工具包,对Zuul代理中的负载均衡OAuth2客户端及登录认证进行支持。
        • Sleuth

          • SpringCloud应用程序的分布式请求链路跟踪,支持使用Zipkin、HTrace和基于日志(例如ELK)的跟踪。
        • Stream

          • 轻量级事件驱动微服务框架,可以使用简单的声明式模型来发送及接收消息,主要实现为Apache Kafka及RabbitMQ。
        • Task

          • 用于快速构建短暂、有限数据处理任务的微服务框架,用于向应用中添加功能性和非功能性的特性。
        • Zookeeper

          • 服务注册中心。
        • Gateway(可替代 Zuul)

          • Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,Spring Cloud Gateway 旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式。Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,目标是替代 Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。
        • OpenFeign(可替代 Feign)

          • OpenFeign 是 Spring Cloud 在 Feign 的基础上支持了 Spring MVC 的注解,如 @RequesMapping等等。OpenFeign 的 @FeignClient 可以解析 SpringMVC 的 @RequestMapping 注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。
      • 项目经验

        • 总结
    • 中间件

      • 缓存

        • Redis

          • 5大数据类型
          • 事务
          • 消息通知
          • 管道
          • 持久化
          • 集群
      • 消息

        • RabbitMQ
        • RocketMQ
        • Kafka
      • 搜索

        • ElasticSearch

    前端

    • 基础套餐

      • 三大件

        • HTML
        • CSS
        • JavaScript
      • 基础库

        • jQuery
        • Ajax
    • 模板框架

      • JSP
      • Thymeleaf
      • FreeMaker
    • 组件化框架

      • Node
      • VUE
      • React
      • Angular

    开发工具

    集成开发环境

    • Eclipse
    • IDEA
    • VSCode

    Linux系统

    • Linux常用命令
    • 基本Shell脚本

    代码管理工具

    • Git

      • Git命令和使用
    • SVN

    项目管理/构建工具

    • Maven
    • Gradle

    应用运维

    Web服务器

    • Nginx

    应用服务器

    • Tomcat

    容器技术

    • Docker
    • Kubernetes(K8S)
      • 管理运维容器

    持续集成、持续发布

    • Jenkins

    代码质量检测

    • Sonar

    日志收集、分析

    • ELK

    CDN加速

  • 相关阅读:
    Stack源码分析
    LinkedList源码分析 (JDK1.8)
    AbstractSequentialList源码分析
    Vector源码分析
    ArrayList简介
    获取类运行
    类加载器的作用
    什么时候会发生类初始化
    IIS无法加载字体文件(*.woff,*.svg)的解决办法
    PowerDesigner 显示name(中文) 和显示code(字段名) 设置
  • 原文地址:https://www.cnblogs.com/fengda1/p/14707678.html
Copyright © 2011-2022 走看看