知识图谱

数据结构

 数组

  概述

 链表

  单链表、双端链表、双向链表、循环链表

  例题:两个链表求和

  例题:合并K个有序链表

  例题:反转链表.pdf

 栈

  栈

 队列

  队列、优先级队列

 串

 散列

 树

  树与二叉树.pdf

  二叉树的前序、中序、后序遍历:递归.pdf

  二叉树的前序、中序、后序遍历:使用栈.pdf

  二叉树的层序遍历:使用队列.pdf

  二元运算表达式树:前缀、中缀、后缀.pdf

  二叉搜索树.pdf

  平衡二叉树(AVL).pdf

  堆.pdf

  哈夫曼树.pdf

  2-3树和2-3-4树.pdf

  红黑树

  B树、B+树、B*树与磁盘存储.pdf

 图

  图的基本概念.pdf

  图的创建、深度优先遍历、广度优先遍历.pdf

  最小生成树.pdf

  带权图的最短路径(Dijkstra算法).pdf

算法

 算法概述与复杂度

 排序

  冒泡排序

  选择排序

  插入排序

  希尔排序

  划分算法

  快速排序.pdf

 查找

 递归

  递归概述.pdf

  例题:判断回文串.pdf

  例题:输出全排列.pdf

  例题:汉诺塔移动.pdf

  例题:重建二叉树.pdf

  例题:检查树的平衡性.pdf

 分治

  分治概述、合并排序.pdf

  例题:逆序对个数.pdf

  例题:股票最大利润.pdf

  例题:最小k个数.pdf

 贪心

 广度优先与分支界限

  例题:二叉树的深度.pdf

 深度优先与回溯

 动态规划

  动态规划与斐波那契数列.pdf

  拾取不相邻硬币最大和.pdf

  连续子数组最大和.pdf

 随机

 字符串

 双指针

  例题:链表倒数第k个节点.pdf

计算机组成原理

 计算机系统概述

  补充:编译型语言与解释性语言.pdf

  冯诺依曼结构、存储器、运算器、控制器简介.pdf

  计算机硬件主要技术指标.pdf

 系统总线

  总线概述.pdf

  系统总线结构.pdf

  总线判优控制、总线通信控制.pdf

 存储器

  存储器分类.pdf

  主存储器结构:地址线、数据线、片选线、译码器.pdf

  静态RAM、动态RAM.pdf

  ROM.pdf

  主存容量扩展、存储器与CPU的连接.pdf

  存储器数据检错与纠错、汉明码.pdf

  多体并行(高位交叉、低位交叉).pdf

  高速缓存:读写、地址映射、替换算法.pdf

  辅助存储器.pdf

 输入输出系统

  概述:IO指令、编址方式、传送方式、联络方式、连接方式、控制方式.pdf

  IO设备.pdf

  IO接口.pdf

  程序查询方式.pdf

  程序中断方式.pdf

  DMA方式.pdf

 计算机的运算方法

  无符号数与有符号数:原码、补码、反码、移码.pdf

  定点数与浮点数.pdf

  定点运算.pdf

  浮点运算

  算术逻辑单元、加法器与进位链.pdf

 指令系统

  机器指令格式.pdf

  数据存放方式、操作码类型.pdf

  指令寻址、数据寻址.pdf

  指令格式举例、RISC与CISC.pdf

 CPU结构与功能

  CPU结构与功能.pdf

  指令周期的微操作与数据流.pdf

  指令流水-提高CPU并行能力.pdf

  中断系统.pdf

 控制器与微操作

  指令周期与微操作

  控制单元功能

 组合逻辑设计与微程序设计

  微操作的节拍安排

  组合逻辑设计步骤

  微程序设计

计算机网络

 计算机网络概述

  计算机网络概述.pdf

  多路复用.pdf

  交换网络.pdf

  计算机网络性能指标.pdf

  计算机网络体系结构-分层结构.pdf

 应用层

  网络应用结构、网络应用对传输的要求.pdf

  Web应用与Http协议.pdf

  Email应用与SMTP协议.pdf

  DNS概述.pdf

  Socket概述.pdf

  Socket编程实例.pdf

 传输层

  传输层概述、发送端复用与接收端分用.pdf

  UDP协议.pdf

  可靠数据传输协议:停等机制-rdt协议.pdf

  可靠数据传输协议:流水线+滑动窗口机制-GBN协议、SR协议.pdf

  TCP协议:报文段格式、连接建立与拆除、流量控制.pdf

  拥塞控制:慢启动、拥塞避免、快重传、快恢复.pdf

 网络层

  网络层功能、虚电路网络和报文网络.pdf

  IP协议:IP数据报格式、IP分片、有类IP、子网划分.pdf

  CIDR表示子网、路由聚合、DHCP协议、NAT、IMCP协议、IPv6协议.pdf

  路由表与转发表.pdf

  路由算法:链路状态.pdf

  路由算法:距离向量.pdf

  AS内路由协议:RIP、OSPF,AS间路由协:BGP.pdf

 数据链路层

  数据链路层服务:差错检测.pdf

  MAC协议:ALOHA、CSMA、轮询令牌.pdf

  MAC地址与ARP(地址解析)协议.pdf

  以太网.pdf

  交换机.pdf

  虚拟局域网VLAN.pdf

  PPP协议.pdf

 物理层

  通信基础:异步通信和同步通信、模拟信号与数字信号、PCM信源编码.pdf

  物理介质.pdf

  信道与信道容量.pdf

  基带传输.pdf

  频带传输.pdf

  物理层接口特性.pdf

操作系统

 操作系统概述

  计算机启动流程.pdf

  中断、异常、系统调用.pdf

  函数调用与系统调用.pdf

  Linux系统调用汇总

 内存管理

  逻辑地址生成.pdf

  连续内存分配与内存碎片、碎片整理、伙伴系统.pdf

  操作系统的内存管理方式:重定位、分段、分页、段页式.pdf

  快表、多级页表、页表反置.pdf

  虚拟存储:覆盖、交换、局部性原理.pdf

  虚拟存储:虚拟页式存储、缺页中断

  置换算法:FIFO、LRU、Clock、LFU,Belady现象.pdf

  全局置换算法:工作集置换算法、缺页率置换算法、抖动问题.pdf

 进程管理

  进程与进程控制块PCB

  进程状态及转换

  线程、用户线程、内核线程

  进程的状态创建、就绪、调度、等待

  CPU调度算法

  实时操作系统简介、多处理机调度简介

  优先级反置现象及解决

  互斥与同步:硬件关中断、软件算法、CPU原语

  锁、信号量、条件队列

  信号量与管程实现读写锁

  死锁避免与银行家算法

  进程内部通信IPC:信号、管道、消息队列、共享内存

 文件系统

  文件系统与抽象

  块请求队列调度算法

  打开文件与文件描述符

  文件目录

  文件挂载与文件系统种类

  文件的用户视图、系统视图,文件访问模式、访问控制

  文件的数据块分配方式:多级索引

  空闲空间管理

  高速缓存与页缓存

  虚拟文件系统与文件系统存储视图

  冗余磁盘阵列RAID:提高吞吐量和可靠性

 IO子系统

  字符设备、块设备、网络设备

  IO子系统与设备驱动

  磁盘缓存置换算法:分段LFU

Java基础

 多线程与并发

  线程与进程的区别

  线程的创建方式

  线程的生命周期

  sleep()、wait()、run()、join()、yield()、守护线程

  线程的优先级

  什么是线程安全

  同步方法、同步代码块、同步锁

  线程的通信

  线程死锁、避免死锁

  不可重入锁锁死.pdf

  锁、可重入锁

  CAS和synchronized、乐观锁与悲观锁、自旋锁与互斥锁

  信号量与阻塞队列.pdf

  线程池.pdf

  发令枪: CountDownLatch和CyclicBarrier.pdf

  Java内存模型-主内存与工作内存.pdf

  valotile可见性、禁止指今重排.pdf

  Java内存模型-可见性、原子性、顺序性、happens-before先行发生原则.pdf

  锁优化-自适应自旋、锁消除、锁粗化、偏向锁、轻量级锁.pdf

 集合

  Java集合.pdf

  HashMap、ConcurrentHashMap专题

 泛型、反射、代理

  动态代理

Java虚拟机

 一、JVM内存模型

  JVM内存模型

  Java常量,变量,对象(或字面量)在内存中的存储位置

  对象的创建过程:指针碰撞、空闲列表

  对象的内存布局:对象头、实例数据、补充对齐

  对象的定位:句柄池方式、指针方式

 二、垃圾回收与内存分配策略

  可达性分析与GC Roots

  Stop the world、安全点、安全区域

  利用finalize()避免被回收

  强引用、软引用、弱引用、虚引用

  方法区的垃圾回收

  垃圾回收算法-复制算法、标记清除算法、标记整理算法

  新生代垃圾回收器-Serial、ParNew、Parallel Scavenge

  老年代垃圾回收器-Serial Old、CMS、Parallel Old

  新生代&老年代回收器-G1

  根据场景选择垃圾回收器

  JVM中关于GC的设置

  Eden不足触发MinorGC

  配置大对象直接进入老年代

  配置进入老年代的最大Age

  MinorGC后转移到老年代最大Age被重新计算

  老年代分配担保不足导致FullGC

 三、性能监控与故障处理工具

 四、调优案例

 五、类文件结构

  字节码是无关性的基石

  Class文件结构解析-魔数、版本号、常量池

  javap命令解析Class文件

 六、类加载机制

  类加载机制和双亲委派模式.pdf

  类加载过程

  双亲委派模式

 七、字节码执行引擎

 其他

  协程

网络与高并发

 基础

  Socket与ServerSocket模拟客户端与服务端交互

  URLConnection从网络或文件读取数据

  四种IO模型:阻塞型、非阻塞型、多路复用型、异步型

  多路复用IO实现:select、poll、epoll

  NIO中关于epoll空轮询的bug

  epoll的触发方式:水平触发、边缘触发

  反应器模式+NIO实现服务端与客户端

  Reactor线程模型:单线程、多线程、主从多线程

  Nagle算法:合并多条小消息

  粘包、拆包现象及解决方案

 Netty

  实现通信框架需要考虑的问题

  基于Netty+protobuf实现客户端服务端通信框架

设计模式

 一、设计原则

  六大原则

 二、创建性模式

  单例模式

  工厂方法模式

  抽象工厂模式

  建造者模式

  原型模式

 三、结构性模式

  适配器模式

  代理模式

  装饰模式

  组合模式

  外观模式

  享元模式

 四、行为性模式

  模板模式

  中介模式

  命令模式

  责任链模式

  策略模式

  观察者模式

  备忘录模式

  访问者模式

  状态模式

  迭代器模式

Zookeeper

 概述

  zookeeper3.4.8安装和集群搭建

  分布式一致性、CAP&BASE

  2PC和3PC.pdf

  Paxos算法

  Raft协议.pdf

  ZAB协议

  ZNode类型、状态信息、版本号.pdf

  Zookeeper临时顺序子节点实现分布式锁.pdf

  Zookeeper watcher

  Zookeeper应用场景.pdf

Kafka

 一、Kafka概述

  Kafka主要用途

  生产者、消费者、broker、主题、分区

  leader副本、follow副本、AR、ISR、OSR

  偏移量、HW(高水位)、LEO

  生产者示例

  消费者示例

  安装和集群搭建

  常用命令

 二、生产者

  发后即忘、同步发送、异步发送及性能

  生产者拦截器、onSend()、onAcknowledgement()

  序列化器

  分区器

  消息缓存在ByteBuffer中并批量发送

  多个batch对应一次网络发送

  优先向压力最小的节点发送

  生产者客户端主要参数

 三、消费者

  以消费组为单位进行重复消费

  点对点模式与发布订阅模式

  集合订阅、正则订阅、指定分区订阅

  poll()拉取消息时的阻塞时间

  ConsumerRecord内部结构

  提交消费位移

  前置提交导致消息丢失、后置提交导致重复消费

  同步提交阻塞消费线程、指定位移量提交

  异步提交的回调函数、设置位移序号解决异步提交覆盖问题

  消费者退出或再均衡前同步位移把关

  一个完整的消费流程

  再平衡时分区消费位移自动重置、手动重置到指定位置

  利用监听器在再均衡前后嵌入动作

  消费位移的外部存储

 四、分区与主题

  主题、分区、副本、日志分段

  主题的创建、查看、修改、删除

  topic相关的主要参数

  分区副本的轮询分配机制

  使用KafkaAdminClient操作主题

  分区管理-选举优先副本为leader副本

  分区管理-分区重分配、复制限流、修改副本数

  性能测试、选择合适的分区数、分区数上限

 五、日志存储

  Kafka文件目录与结构

  消息格式-v0版本、v1版本、消息压缩

  (补充)原码、反码、补码

  Varints编码(Base128)-减少小整数的长度进行压缩

  消息格式-v2版本

  日志索引

  日志索引-偏移量索引

  日志索引-时间戳索引

  日志清理-日志删除

  日志清理-日志合并(Log Compacting)

  磁盘存储-线性写入、页缓存

  磁盘存储-磁盘IO流程

  磁盘存储-零拷贝

  零拷贝:mmap()、sendfile()

 六、深入服务端

  协议设计

  时间轮-插入任务、多层时间轮、降级、推进

  延时响应的实现

  控制器、优雅关闭

  控制器-分区leader选举

  参数解密-brokerid、broker.servers、服务端重要参数列表

 七、深入客户端

  分区分配(再均衡)策略

  组协调器、消费者协调器、再均衡原理

  __consumer_offsets主题与提交消费位移

  消息传输保障、幂等性、事务

  Kafka事务原理

 八、可靠性探究

  副本失效、ISR伸缩、LEO与HW变化

  leader epoch的作用

  为什么不支持读写分离

  Kafka同步机制-ISR机制与过半机制

 九、高级应用扩展

  过期时间、延时队列、死信队列、重试队列.pdf

  消息路由、消息轨迹、消息审计、消息代理.pdf

  消息中间件的选型

 源码调试

  Kafka源码调试

Redis

 概述

  缓存雪崩、缓存击穿、缓存穿透.pdf

  Redis支持的数据类型.pdf

  Redis数据结构- SDS、哈希、跳表、压缩列表.pdf

  redisObject、 5种数据类型与底层实现.pdf

  Redis持久化- RDF持久化.pdf

  Redis持久化- AOF持久化.pdf

  Redis主从复制.pdf

  Redis哨兵.pdf

  Redis集群.pdf

  Redis过期删除策略.pdf

  Redis内存淘汰策略.pdf

  Redis实现分布式锁.pdf

  布隆过滤器.pdf

大数据

 Hadoop

  常用命令

  Hadoop2.7.3安装与集群搭建

  HDFS设计目标

  HDFS-副本、block、split

  Namenode存储命名空间镜像文件和编辑日志

  编辑日志滚动、合并编辑日志到镜像、SecondaryNamenode负责合并

  使用SecondaryNamenode中的镜像文件恢复Namenode

  将小表block缓存在Datanode上

  HDFS联邦

  HDFS高可用-ActiveNN、StandbyNN、向QJM写入editlog

  HDFS高可用-使用ZKFailController选举ActiveNN

  HDFS文件权限、开启权限检查

  MapReduce的Shuffle过程

 Spark

  Spark2.0.2安装和集群搭建

  Spark概述及相关组件

  Spark开发环境配置及单词计数

  RDD的基本操作

  RDD缓存到内存或磁盘

 YARN

  MR1与YANR的区别

  ApplicationMaster向ResourceManager申请Container

  YARN申请容器的就近原则

  FIFO调度器、容量调度器、公平调度器

  公平调度器-队列按照specified、primaryGroup、default的顺序进行规则匹配

  公平调度器-抢占影响集群效率

数据库

 概述

  事物的隔离级别

  多表连接方式:Hash join、nested loop join、sort merged-join

杂记

 概述

  RPC和REST

  Git原理:存储结构

posted on 2021-05-06 20:08  观离  阅读(100)  评论(0)    收藏  举报

导航