写点什么

架构师训练营 - 第⑧周总结

用户头像
牛牛
关注
发布于: 2020 年 07 月 28 日
架构师训练营 - 第⑧周总结
数据结构与算法
  • 时间复杂度:算法语句执行的次数

  • 空间复杂度:运行中临时占用的空间大小

  • NP问题:

  • P:能在多项式时间复杂度内解决的问题

  • NP:能在多项式时间复杂度内验证答案正确与否的问题

  • NP-hard:比NP问题更难的问题

  • NP完全问题

  • 数组:存储在连续的内存空间,查询快捷,插入较慢。按下标查询时间复杂度O(1)

  • 链表:可以使用零散的内存空间,查询较慢,插入较快。查找时间复杂度O(n)

  • 数组与链表结合,实现快速查找与快速增删

  • Hash表:数组加链表

  • 栈:后进先出

  • 线程调用栈

  • 队列:先进先出

  • 平衡二叉树:通过旋转保持平衡,时间复杂度O(logN),查找较快

  • 红黑树:最多3次旋转就会达成平衡,时间复杂度O(1),适合增删较多场景,查找效率略差

  • 跳表:通过多级索引提高查询效率

  • 常用算法:

  • 穷举算法

  • 递归算法(快速排序):时间复杂度,n * log(n),可能导致栈溢出

  • 贪心算法(改进-迪杰斯特拉算法-最快路径)

  • 动态规划

  • 遗传算法

网络通信协议

OSI七层模型和TCP/IP四层模型
  • 物理层:在物理媒介上传输二进制格式数据

  • 数据链路层:传输有地址的帧及错误监测功能

  • 链路层负载均衡

  • 网络层(IP):为数据包选择路由

  • IP负载均衡

  • 传输层(TCP):提供端对端接口

  • TCP3次握手,4次挥手

  • 会话层:管理网络中计算机之间的通讯,提供传输层不具备的连接相关功能

  • 表示层:转化数据格式,并处理数据加密与数据压缩

  • 应用层:为用户的应用提供服务并支持网络访问

  • HTTP协议

非阻塞网络I/O
  • BIO 阻塞I/O

  • 非阻塞I/O

  • Java NIO

  • Selector

  • SelectableChannel

  • SelectionKey

  • Buffer

  • 系统I/O复用方式:select、poll、epoll(event poll)

数据库原理与性能优化
  • 数据库架构:

  • 连接器(连接池)

  • 语法分析器(校验错误)

  • 语义分析与优化器(语句等价转化、利用索引优化)

  • 执行引擎(执行计划、分析性能)

  • prepareStatement预处理,效率更好

  • B-树与B+树

  • 聚簇索引:索引和数据存储在一起

  • 非聚簇索引:叶子节点存储的是主键,通过主键索引找到记录

  • 添加必要的索引优化SQL查询性能

  • 谨慎使用索引

  • 数据库事务ACID

  • 数据库事务日志



用户头像

牛牛

关注

还未添加个人签名 2018.02.27 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 - 第⑧周总结