失效链接处理 |
2020年腾讯Java高级笔试面试题 PDF 下载
本站整理下载:
提取码:mg0n
相关截图:
主要内容:
腾讯-0305
1. 从简历项⽬中选⼀个项⽬,说说你在其中遇到了什么重⼤挑战?以及你的解决问题的思路?
2. ⼀段代码要执⾏多个redis命令,不加锁的情况下如何保证原⼦性?
使⽤lua脚本:https://segmentfault.com/a/1190000009811453
3. 谈谈数据结构,⽐如⼆叉树、红⿊树?
理解这篇:https://juejin.im/post/5a27c6946fb9a04509096248
4. 说说B-tree、B+tree的区别和使⽤场景?
1. B-tree:
B-tree 利⽤了磁盘块的特性进⾏构建的树。每个磁盘块⼀个节点,每个节点包含了很关键字。把树的节点关键字增多后树的
层级⽐原来的⼆叉树少了,减少数据查找的次数和复杂度。
B-tree巧妙利⽤了磁盘预读原理,将⼀个节点的⼤⼩设为等于⼀个⻚(每⻚为4K),这样每个节点只需要⼀次I/O就可以完
全载⼊。
B-tree 的数据可以存在任何节点中。
2. B+tree:
B+tree 是 B-tree 的变种,B+tree 数据只存储在叶⼦节点中。这样在B树的基础上每个节点存储的关键字数更多,树的层级
更少所以查询数据更快,所有指关键字指针都存在叶⼦节点,所以每次查找的次数都相同所以查询速度更稳定;
5. mysql哪个版本哪个存储引擎的索引使⽤的B+tree,为什么不使⽤红⿊树?
需要先理解B+tree、红⿊树的实现原理。B+tree带有顺序访问指针,是红⿊树不具备的。
6. 说说⼏种常⻅的消息中间件的区别?
1. 中⼩型公司⾸选RabbitMQ:管理界⾯简单,⾼并发。
2. ⼤型公司可以选择RocketMQ:更⾼并发,可对rocketmq进⾏定制化开发。
3. ⽇志采集功能,⾸选kafka,专为⼤数据准备。
7. rabbitmq如何保证消息的可靠性?
详⻅“⾯试题库/rabbitmq”
8. springcloud服务发现原理?
a. 每30s发送⼼跳检测重新进⾏租约,如果客户端不能多次更新租约,它将在90s内从服务器注册中⼼移除。
a. 注册信息和更新会被复制到其他Eureka 节点,来⾃任何区域的客户端可以查找到注册中⼼信息,每30s发⽣⼀次复制来定位他
们的服务,并进⾏远程调⽤。
b. 客户端还可以缓存⼀些服务实例信息,所以即使Eureka全挂掉,客户端也是可以定位到服务地址的。
|