腾讯java后台开发一面凉经

先总结一下,面试官特别随和,但是我太菜。拷打完我的秒杀项目后,突然问我C++的八股,后续拷打操作系统和计网。
笔试题很简单,一道链表倒数第k个元素,另一道和最大子序列。面试官说没有C++基础反正也过不了面试,笔试题看看就行。

项目:
1.redis缓存空对象用于解决缓存击穿,是否有做过压测?为什么选择缓存空对象,而不使用布隆过滤器?
     编了一个2000QPS的并发量,但是面试官说压测要一直提升直至检测出性能瓶颈,虽然实际开发的某些业务功能不需要那么高,但是需要必要的检测。
     缓存空对象实现简单,维护方便,代价是占用额外的内存空间;而布隆过滤器实现复杂,可能误判。
2.redis使用setnx实现分布式锁,如何控制锁的有效期?
     用redission框架的看门狗机制,每隔一段时间检测是否持有锁,业务结束后释放即可。
3.redis缓存击穿使用互斥锁解决方案的利弊?
     互斥锁保证了数据的强一致性,不消耗额外内存,实现简单,缺点就是损耗性能(线程需要等待)的同时面临死锁的风险,而逻辑过期与之相反。
4.为什么使用lua脚本?听过pipeline吗?
     lua脚步保证操作的原子性,但不适用于多线程并发。pipeline在实际生产更并发场景更实用,但无法保证一致性。

八股:
1.C++虚函数和多态原理及作用
2.C++多重继承的构造函数和析构函数

操作系统:
1.linux查看硬盘信息
     df -h选项可以以人类可读的格式输出硬盘使用状况
2.linux查看网口
     tcpdump 类似的有windows中的wireshark
3.linux查看网络状态
     netstat 可以得到网卡接口上的路由表、网卡接口信息等。在网络编程中用来显示TCP连接以及状态信息
4.内存管理机制?
     连续内存管理和非连续内存管理。后者细分为页式、段式和段页式管理机制。
5.进程和线程区别?进程之间通信方式?
     管道 消息队列 共享内存 信号量 信号 socket

计网:
1.TCP三次握手?详细状态?为什么不是两次?
     客户端:CLOSED、SYN_SENT、ESTABLISHED
     服务端:LISTENING、SYN-RCVD、ESTABLISHED
2.TCP和UDP区别?
全部评论
黑马点评吗,redis秒杀哈哈
2 回复 分享
发布于 2023-06-01 09:16 河北
java岗也会问c++吗😰
2 回复 分享
发布于 2023-08-01 09:04 湖南
不会c++直接挂吗
点赞 回复 分享
发布于 2023-05-31 10:53 浙江
请问是哪个部门什么岗
点赞 回复 分享
发布于 2023-06-09 21:12 江苏

相关推荐

百度 算法 40k×16+9w签字费分两年 硕士985
点赞 评论 收藏
分享
评论
9
52
分享
牛客网
牛客企业服务