知识清单

fansichao 2021-10-23 16:29:27
Categories: Tags:

TODO 清单

面试资料大全

  1. http 状态码/header/请求方法, 哪些请求方法是幂等的

  2. https 加密原理

  3. python 协程原理/缺点

  4. python GIL, 为什么有 GIL 还需要 threading

  5. python gevent 协程调度原理/缺点

  6. 设计一个文本编辑器实现插入/删除/查询

  7. 头条文章向用户推送避免重复推送的问题

  8. 工作中遇到的印象深刻的问题

  9. 两个单链表求和

  10. 两种存储引擎

  11. http 的返回码

  12. mysql 索引

  13. 链表操作(在线写代码)

  14. http 状态码

  15. UDP / TCP 协议

  16. 链表操作 [手写代码]

  17. 乐观锁 / 悲观锁

  18. 三次握手

  19. Socket

  20. Hbase 底层原理

  21. Map 底层原理

  22. 数据库分表 / 分库 / 集群

  23. 给定一个二叉树. 返回二叉树每层的最左的值。

  24. 手里有一副扑克牌。按照下列规则吧他堆放桌上。一. 拿出最上面的一张牌. 放桌上. 然后把接下来的一张牌放在扑克牌的最下面。循环. 直到没有手牌。现在已知桌上牌的顺序。求原手牌的顺序。

  25. redis 内存不足. 如何解决

  26. mysql 索引的使用和原理

  27. epoll 和 poll,select 的区别

  28. 实现一个有顺序的 LinkedList. 实现 deleteAll(int val)方法删除所有值为 val 的节点. 和 save(int val)方法添加一个值为 val 的节点。

  29. 线程池的工作流程。线程的几种状态. 什么情况会进入阻塞

  30. JDK 基础 集合 锁

  31. Mysql 的索引结构 聚簇索引

  32. 限流。限流算法。令牌桶的不足

  33. GC CMS. CMS 的参数

  34. JVM 的一些排查工具 jstat, jstack ,jmap

  35. 工作中遇到的问题如何排查

  36. 一排盒子. 每个盒子上标了能走的最大步数. 从第一个盒子开始. 判断能否走到最后的盒子

  37. 栈 增加一个 max 方法;

  38. 自己设计 hash;

  39. 微博限定用户每次输入最多 140 个字符. 用户如果传字符串很长的链接. 怎么办

  40. 输入一串空格分开的整数. 相邻不会重复如:1 2 4 3 5. 只返回其中一个峰值就可以. 比如返回 4 或者 5。 峰值定义:大于相邻两个数字就是峰值;对于头尾两个数字. 分别大于相邻的一个数字即算峰值

  41. 二叉树镜像

  42. 两个线程. 一个只能存有数组 1. 2. 3 和另一个存有 a. b. c. 然后通过调度. 最终结果输出 1a2b3c

  43. 输入一个 int 数组. 返回一个数组. 其中奇数都在左边. 偶数都在右边 附加条件 不使用额外的空间

  44. java 多线程知识点. 如 synchronized. reentrantLock 以及两者比较

  45. java 线程池. submit 跟 execute 的区别

  46. stack 实现一个 min 方法. O(1)的复杂度

  47. 数据库两种引擎比较

  48. 数据库 3 个字段的联合索引. 在用单字段时能否命中索引

  49. 数据库如何建索引. 和如何分库分表

  50. 找到一个文件里出现次数最多的的数字. 文件大小远大于内存容量

  51. 10G 文件 1G 内存.

  52. 打印重复数字

  53. 查找前 topK

  54. 给一个数组和一个整数. 输出数组中所有和为给定整数的元素下标

  55. MySQL 两种存储引擎的差异;

  56. where a>1 and b>1;where a = 1; where b = 2,如何为这种条件语句建立索引;

  57. LRU 的实现

  58. 介绍一个项目中遇到的问题。

  59. 一个 100G 的文件. 内存只有 8G. 如何给文件排序. 文件内容都是按行存储的 URL

  60. a. 产品设计过程中面对的挑战和难点;b. 周围同事对我的评价;c. 产品设计考虑的几个点

  61. k 路归并排序

  62. lru 原理要非常详细的数据结果和过程结构

  63. 给个数组. 只有重复的. 求所有和为 21 的下标:不用 n2 的暴力算法. 要考虑数字相同的下标. 先说思路没问 题才能共享屏幕写

  64. 根据二叉树前序遍历生成 avl 树

  65. 编程题:string 转 double

  66. hashmap 实现方式

  67. 数据库事务. 隔离级别

  68. out Of memory Error 跟 stack Over flow Error 的比较

  69. 数据库的隔离级别

  70. java 的 array 跟 list 的比较. 底层原理上的

  71. 有 sql 的编程题. 是问每门课程都大于 80 分的学生名字

  72. java 编程题. a. 反转一句英语的所有单词:hello world - > world hello
    b. 6 7 8 9 0 1 2 3 4 5. 找一个数

  73. 还有 tcp. 三次握手;ssl。

  74. 对称性加密跟非对称性加密的比较. 使用场景

  75. 数据库事务

  76. java 的多线程

  77. 涉及面好广 还有密码学的. 加密算法 RSA

  78. 搜索引擎倒排原理及实现方式

  79. Redis 高可用方案

  80. 主键与索引的联系和区别

  81. 索引的实现方式. 为什么会采用这种数据结构

  82. Redis 缓存删除策略

  83. 编码实现 LRU 算法

  84. 统计大量访问日志(分几百 M 和 几百 G 的场景);得出访问次数最多的前 K 个人 (单台机器实现)

  85. 给你一个连续素数数组 让你找出增长比第 k 小的位置

  86. 代码题:有序数组 A = [1, 2, 2, 3, 3, 5, 5, 5]. b = 5. 在 A 中找出 b 的序号的上下界. 考察思路和代码熟练度

  87. 自我介绍. 项目经历(会结合你的项目经历即兴问一些相关联的问题. 以设计思路. 框架性的思考为主)

  88. HTTPS 原理

  89. Oracle MySQL 特性. 优劣势

  90. Redis 等前沿技术栈的知识面

  91. python 的装饰器

  92. mysql 的 innodb 与 myisam 区别. 索引

  93. 10G 文件. 1G 内存. 找出最大的 K 个数. 找出重复数

  94. 简单的一道系统设计题:用 redis 做限

  95. 然后是 Mysql 各种基础知识

  96. 然后是 HTTP 状态码 502/504

  97. 然后是一道系统设计题:微信扫码登录

  98. 成都后台笔试:是输入[I love byte bytedance] Ilovebytebytedance 然后判断中括号里的单词能否组成括号外的语句中括号里的单词用空格符隔开. 括号外的语句不能由单词重叠组成如果输入这个[I love byte bytedance] Ilovebytedance. 预期结果返回 true

  99. 南京大数据后台一面:redis 相关的 zset 结构 redis 内存回收 多线程拒绝策略 数据库 B 树索引 treemap 原理

  100. 然后算法题一个是 给定一个数字只移动以为要求结果比原值大并且是所有方案中最小的值

  101. 还有个算法题是 16 进制加法

  102. 成都后台一面:. mybatis 的 Mapper 接口映射到 sql 文件的实现原

  103. mysql 联合索引,实现,优点

  104. 一个算法题. 两数组 a,b. 把 a 数组中在 b 数组出现的数字. 按照它在 B 数组中出 现的顺序进行位置调整。

  105. 微博等热门评论. 在分页到很深的时候. 如何进行优化

  106. 成都后台一面

  107. mysql 相关:

  108. 引擎 innodb 特性. 锁. 事务

  109. kafka. rocketmq. 同步机制和事务机制

  110. 编程实现的是泛型链表的添加和删除. 主要是看敲代码的过程和怎样解释自己的代码吧

  111. 杭州后台;删除链表中重复的结点在一个排序的链表中. 存在重复的结点. 请删除该链表中重复的结点. 重复的结点不保留. 返回链表头指针。例如. 链表 1-> 2-> 3-> 3-> 4-4-> 5 处理后为 1->2->5 总结:比较注重 CS 修养. 底层源码实现

  112. 输入一个二叉树. 以及指定一个层次. 从右向左输出这一层的所有节点

  113. 设计一个 LRU. 尽可能的支持高并发

  114. session 怎么用 cookie 实现的. session 和 cookie 的区别。

  115. java 线程池是怎么工作的。

  116. java bio nio 的区别

  117. nio 是怎么实现的

  118. CMS 的流程

  119. CMS 的参数

  120. 线上的 GC 是怎么配置的?

  121. redis 主从怎么实现的。

  122. 北京后台一面:介绍一下项目. 链表逆序. 设计一个王者的组队系统

  123. 北京: 限流 zset redis pipieline http 请求过程详解 mysql 索引 堆排序 求前 k 大个数

  124. sql 什么时候不适合用索引. 索引太多会有啥问题. 同步 io 和异步 io 区别. coding 是多个数组合并. follow up 如果数组个数非常多但是每个里面的内容比较少

  125. http 和 https 的区别. https 的实现

  126. 成都后台开发:第一个题是’反转二叉树’. 第二个题是 N 皇后问题(8 皇后问题的扩展)

  127. 单链表. 每 k 个进行一次翻转

  128. 设计一个限流工具. 每 5s 允许一个请求. 多的请求丢弃

  129. 设计一个限流工具. 在第 1. 6. 11. 16 秒允许一个请求. 多的丢弃

  130. 设计一个限流工具. 在第 1. 6. 11. 16 秒允许一个请求. 多的排队等待

  131. 介绍一个最熟悉的项目. 里面有什么亮点

  132. 简单工厂. 抽象工厂. 方法工厂的区别

  133. java 线程池的有哪些参数. 以及意义

  134. 成都后台一面

  135. concurrentMap 实现高并发的原理

  136. java nio 和 bio 的区别

  137. redis 的常用数据结构. 持久化方式. 写入时 rdb 机制

  138. https 机制. http 服务端推送

  139. 写一个 lru cache. get set delete 都在 o(1)

  140. 深圳后端

  141. python 的 gil 锁

  142. 消息队列如何实现高吞吐量

  143. http 状态码

  144. 数据库外键的优缺点

  145. 算法给定 ab 两个数. a 可以+2019. ×5. ×17. 问最少经过多少步可以将 a 变换到 b(2019. 5. 17 是今天的日期. 完全是现场临时随便编了个题)

  146. 介绍下项⽬目

  147. 项⽬目中的难点是什什么. 怎么解决的

  148. 算法:数组中第 K ⼤大的数. 分析时间复杂度

  149. volatile 的作⽤用

  150. 怎么保证原⼦子性

  151. 线程安全的单例例模式

  152. ThreadLocal 的作⽤用. 应⽤用场景是什什么

  153. HashMap 和 TreeMap 的区别. 以及各⾃自的优势

  154. Mysql 的索引是怎么实现的. 为什什么这么实现. 优势在哪

  155. 北京后台 1 面:

  156. 502 504

  157. cookie. session

  158. mysql 优化

  159. mysql MyISAM 与 innodb 的区别

  160. redis 分布式锁

  161. 缓存一致性

  162. mysql 索引存储

  163. jvm 垃圾回收算法

  164. 深圳后台一面:

  165. go string 的数据结构

  166. goroutine 的调度

  167. 数组中第 k 大的数

  168. 武汉后台一面:1. ORACLE 和 mysql 的区别

  169. 工作中 Spring Aop 的案例

  170. activemq 和 rabbitmq 的区别

  171. 数据库中的索引和事务

  172. 网络知识:TCP 的三次握手. 四次挥手。

  173. 分布式锁。

  174. 数据库的分布式事务。

  175. 算法题:遍历树. 求从根节点到叶子节点和为某值的路径。

  176. 105 北京后台一面

  177. 一排相邻的糖果屋. 不能从相邻糖果屋买糖. 请问最大能买多少颗糖?输入[1,2,3,1] 输出 4

  178. 上海后台一面:rabbitmq 的代替方式

  179. 聚集索引和飞聚集索引区别

  180. 哪些情况会用到索引

  181. 怎么排查慢查询

  182. 事务隔离级别

  183. Tcp 三次握手四次挥手 Udp

  184. select poll epoll

  185. 算法:按层输出树的结点

  186. Http 各状态码

  187. Session 和 cookie

  188. 杭州后台一面二面:

  189. ctrl c 过程;

  190. 去除重复列表;

  191. 单链表求和;

二面:

  1. 多个人玩贪吃蛇设计
  2. 项目开发性设计. 自己设计. 自己定规则
  3. B B+ 跳表区别 时间复杂度
  4. Https 与 http 区别. tls 的加密流程
  5. 自增 ID 与 uuid 的优劣
  6. Redis 的事务以及实现方式
  7. 给定字符串的全排列
  8. 介绍经历. java 线程池基础知识. 自己实现一个线程池. 然后是二叉树的 bfs. 最小公共子串得长度. 最大不重复子串的长度
  9. dubbo 的容错机制有哪些. 负载均衡机制有哪些
  10. fail-fast
  11. 一个有序数组. 求一个数出现的次数
  12. 数据库索引:表有 3 列 a,b,c. 需支持查询(a,b)(b) (b,c). 索引如何建
  13. 反转二叉树
  14. 数据库表(id, name, parentId)如何组装成树?
  15. 主键索引和非主键索引的区别
  16. 数据库事务的隔离级别
  17. redis 和 memcached
  18. 数据库查询优化
  19. 编程题. 贪心算法
  20. 不同字符最大子串根据给定的输入字符串. 返回包含有最多 k 个不同字符的子字符串的长度及子字符串在输入字符串的起始下标如果有多个符合条件的子字符串. 则返回第一个子字符串的下标输入描述输入为一个待校验的字符串输出描述两个数字. 分表表示子字符串的长度以及子字符串首字符在输入字符串的下标

武汉后台:

  1. 介绍下项⽬目. ⽐比较详细(包括线程数. 负载. 机器器压⼒力力等)
  2. 设计微博评论的存储系统. 要求⽀支持分⻚页
  3. Redis 的 hash 和 string 的区别以及各⾃自的优势和使⽤用场景
  4. 算法:给出⼀一个 xml 格式的字符串串. 校验这个 xml 是否是合法

成都后台:

  1. 手上有一堆扑克牌. 牌面顺序是 1234(从上到下). 规则是. 取手中最上面的牌放入桌上牌堆的最上面如果手中还有牌. 则将手中最上面的牌放入手中牌堆的最下面重复 1. 2 步骤这时桌上的牌堆顺序是 4231(从上到下) 题目:已知桌上牌堆的顺序. 求原来手中牌堆的顺序
  2. 有一个数组 -1 3 2 4 5 -6 7 -9,将该数组的负数和正数分离开多余的数放入数组的尾部 比如 3 -1 2 -6 4 -9 5 7
  3. 上海后台:数字金额转为中文说法. 例如 1001. 25 转为壹仟零壹元两毛五分
  4. 北京后台一二面:1. Redis 的分布式锁. 单节点和集群的优缺
  5. 自己项目里的 mysql 规模 3. 10g 文件. 1g 内存.
  6. 求 top k 和 重复数字
  7. 两个单向链表按照十进制求和. 不能使用已经有的数据结构和注意链表方向. 比如 1-> 3-> 5-> 9. 5-> 4. 等于 1-> 4-> 1-> 3

深圳后台:

  1. 一千个棋子. 甲先取乙后取. 每次最多取七个最少取一个. 问是否有一个方案让甲一定赢
  2. 3×7 的格子. 从左上角到右下角. 只能往右或者往下. 有多少种走法
  3. 一个不均匀硬币. 如何抛出均匀概率,然后有一个生成 0 到 13 随机数的算法. 如何用它均匀生成 0 到 9 随机数
  4. 两千万高考生成绩如何排序
  5. 用链表表示的大数求和

上海后台

  1. MySQL 中的事务隔离级别
  2. 协程的原理和实现
  3. gevent 中的协程的实现
  4. 反转链表
  5. 距离矩阵. 从左上开始. 只能往右或往下. 求从左上到右下的最短距离。

三面 :

  1. leetcode 670. 然后系统设计题. 设计群消息已读功能.
  2. 三面应该是 1 道算法 1 道系统设计
  3. 假设是一个抽奖的游戏. 不同的人是有不同的概率倍数. 是一个整数. 例如 1. 3. 5. . . 输入 100 万人. 要求抽奖抽出来 2 万个人;并且假设每个人都有一个唯一 id
  4. 写一个函数做下抽奖. 输入和输出的数据结构自己设计
  5. 然后就是项目上的一些东西 redis 高可用怎么实现. redis 过期怎么实现. Mysql 索引的注意事项
  6. code review
  7. 数据库索引+前缀匹配
  8. 缓存设计
  9. 并发控制(乐观锁. 悲观锁)
  10. xss && csfr
  11. 杭州后台三面:推送的频率控制. 抖音评论列表的设计及缓存实现. MySQL 索引怎么建. http 头. http header
  12. sizeof 运算符计算要考虑哪些因素
    函数定义 int a[100000]可能出现什么问题
    一百万个用户抽奖. 奖品只有 1000 个. 每人最多中奖一次. 每个用户中奖倍率不一样. 给出代码实现。
  13. 问了 redis 数据结构和实现
  14. 问 hashmap
  15. 浅拷贝深拷贝实现
  16. 把一面的算法题再做一次
  17. 项目聊很多(使用的中间件实现原理)
  18. 带权重抽奖代码实现
  19. 类加载过程
  20. 热加载. 热替换
  21. jvm 参数:-server -client
  22. JIT 即时编译原理
  23. 排查线上问题经历. 思路
  24. 聊部门情况