0%

腾讯CDG金融科技后台开发一面凉经

当天做完测评没多久就打电话约面试了。

0416第一次面试30min
根据简历上写的技术栈一个一个问的,也不问项目(问项目有没有上线,没上线),也没手撕

自我介绍

  1. 数组和链表的区别,使用场景
    底层存储、查询效率、头插效率、扩容、场景(数组频繁访问、链表插入删除频繁)

  2. 树和图的区别
    树:一种层次结构的数据结构,由根节点和子节点组成,常用于表示分层关系。
    图:由顶点和边组成的数据结构,用于表示对象之间的关系,可以是有向图或无向图。

  3. 深度优先搜索和广度优先搜索的区别,为什么要用dfs和bfs
    DFS:从起点出发,沿一条路径尽可能深入(纵向搜索),直到无法继续再回溯。场景:找出所有路径
    BFS:按层次逐层扩展(横向搜索),先访问所有相邻节点再深入下一层。使用队列实现。场景:最短路、层序遍历

  4. 三次握手,发送的内容里面都有什么

  5. 第三次握手丢了,客户端直接发送数据了,服务端会怎么样
    服务端进行超时重传,直到用完重传次数。
    客户端发送的数据包ACK为1,就视为对第二次握手的确认,建立连接并处理数据。
    若数据包未携带ACK标志位,服务端因处于SYN_RECV状态,会回复RST(复位)包强制关闭连接。

  6. 第三次握手的目的是什么
    客户端通过发送ACK包(第三次握手),明确告知服务器已收到其SYN+ACK报文(第二次握手),完成双向通信能力的验证

  7. 序列号怎么生成的,从0开始吗
    TCP连接的初始序列号是一个随机生成的32位整数,数据传输时,每个字节按顺序编号,序列号按发送的字节数递增。
    固定从0开始易被攻击者预测序列号,伪造数据包(如SYN洪泛攻击)。

  8. TCP数据包里包含哪些,有ACK字段吗,这个ACK和三次握手的有什么不一样
    源端口和目标端口、序列号、确认号、控制标志位

  9. HTTP 和 HTTPS 的区别
    安全性、端口号不同、握手不同

  10. HTTPS 四次握手过程,每次握手发了什么

  11. 发送的数字证书为什么是可靠的,客户端怎么判断是可靠的
    客户端依赖内置的根CA公钥验证签名链,确保证书由可信机构签发且内容完整

    _21-客户端怎么去校验证书的合法性

  12. linux常见命令

  13. linux文件系统了解吗

  14. vim打开一个文件的原理
    系统启动 Vim 进程,将文件名作为参数传递
    加载 .vimrc 配置文件,初始化命令映射表
    vim打开文件是将文件内容加载到内存缓冲区供用户编辑,编辑操作作用于缓冲区,保存时再将缓冲区内容写回磁盘文件。

  15. 数据库存储引擎有哪些

  16. InnoDB存储引擎和Mysql的区别
    MySQL 包含存储引擎。
    MySQL等数据库管理系统(DBMS)是一个完整的软件系统,负责SQL解析、连接管理、查询优化、事务控制等高层功能。而存储引擎(如InnoDB、MyISAM)是其底层组件,专门负责数据的物理存储、索引管理、事务实现等具体操作。

  17. 索引怎么实现的

  18. 为什么用B+树,不用二叉树

  19. B+树时间复杂度为什么是O(logN)
    每次查找从根节点开始,通过二分法定位子节点指针,只需访问h个节点即可到达叶子节点。

  20. 联合索引 (a,b,c) (b,a,c) (c,b,a) 有什么区别
    联合索引的字段顺序决定了数据的物理排序方式
    **(a,b,c)**:先按 a 排序,a 相同再按 b 排序,最后按 c 排序。影响索引的 最左匹配原则 和查询效率

  21. 联合索引把什么样的字段放在第一个(用户登录状态和uid哪个放第一个)
    把区分度高的字段放在第一个

  22. 事务隔离级别,可重复读有没有幻读现象,什么情况下出现幻读
    幻读是指一个事务在两次查询中得到的结果集不同,原因是另一个事务在两次查询之间插入或删除了数据。

  23. Redis持久化方式,快照怎么实现的
    第一步是当触发 RDB 持久化时,Redis 会 fork 出一个子进程;
    第二步是子进程负责将当前内存中的数据完整地写入到一个临时文件中;
    第三步是在写入完成后,子进程用这个临时文件替换掉旧的 RDB 文件,完成持久化。

  24. 快照怎么保证和上一个快照不冲突(提示有个静态变量,?)

反问
秒挂的