后端总结知识点(二)

130 阅读2分钟

这是我参与8月更文挑战的第30天,活动详情查看:8月更文挑战

二、计算机网络

  1. TCP(面向连接、可靠)和 UDP(面向报文、快速大量)特点。
  2. TCP的三次握手和四次挥手,为什么这样设计。—— 围绕通信全双工的特点回答。
  3. TCP 为什么不两次握手:无法避免历史错误连接的初始化,在超时前浪费服务端的资源;
  4. TCP 为什么不四次握手:没必要,TCP 设计中支持同时发送 ACK 和 SYN(详情见TCP数据报文结构)。
  5. HTTPS 和 HTTP 的区别:HTTPS 在连接阶段多了应用层协议SSL,涉及CA证书,用非对称加密校验证书和交换通信密钥,后续用对称加密过的 通信密钥 对通信内容进行加密。
  6. 五(七)层模型:应用层、(表示层、会话层、)传输层、网络层、数据链路层、物理层。
  7. TCP可靠性:连续ARQ协议、选择重发ARQ协议、滑动窗口协议。

三、算法设计

1. 基本算法

  1. 手撕快排、归并。
  2. 手撕剑指算法题。
  3. 计算单链表长度(考虑含环情况):快慢指针判断是否有环,也可以用来找到最早公共节点。
  4. 数组相关:利用索引跟值的关系做文章,例如找到乱序数组中第一个缺失的正整数
  5. 字符串相关:一般都会借用一个 size=256 或 size=26 的数组存储(可以覆盖全部256个ASCII字符,或大小写英文字符)。

2. 设计模式

  1. 单例(Singleton):静态内部类,加锁同步,静态常量。
  2. 工厂(Factory),抽象工厂:便于调用不同的子类。
  3. 装饰(Decoration):嵌套型附加特性。
  4. 代理(Proxy):中间人AOP。Spring容器动态代理。
  5. 创建者(Builder):链式调用,隐藏内部多个组件。
  6. 委派(Delegate):双亲委派模型。SpringMVC 以 Dispatcher 结尾的。
  7. 责任链(Responsibility):Spring拦截器。
  8. 适配器(Adapter):兼容组件/零件。SpringMVC 的 HandlerAdapter 参数适配。
  9. 模板(Template):Spring 的 JdbcTemplate。
  10. 策略模式(Strategy):Spring的Resource 接口,可以实现从XML文件、ClassPath获取配置。

3. 灰度发布

  1. 用户标识:对用户打标签,只针对白名单用户开放“内测”功能。
  2. 目标用户/流量筛选:公司内部员工、种子用户、活跃用户、最后是 所有用户。
  3. 实时数据监控:灰度过程需要关注监控,便于及时回滚。