腾讯QQ后台开发Java一面 凉经
项目相关
网络基础
- SSE和WebSocket有什么区别?
- HTTP和HTTPS有什么区别?HTTPS为什么安全?TLS握手过程?
- WebSocket自己有心跳机制吗?断线重连怎么实现?
- 多节点集群下,WebSocket连接分布在不同服务器上,用户A给用户B发消息怎么路由?
- 多节点之间怎么解决消息转发的延迟问题?
MCP 相关
- MCP和Function Calling有什么区别?MCP的优势在哪里?
手撕代码 & Java基础
- 手撕代码:实现LRU缓存(双向链表 + HashMap)
- LRU中删除最老节点时,HashMap中对应的映射也需要删除,容易遗漏 把这个居然忘了,呜呜呜呜呜,
- Java中有没有现成的结构可以直接支持LRU? 这个手撕写了二十分钟,面试官也许觉得我太慢,说我知不知道java可以直接实现,我说不知道,他说linkedHashMap,我说啊,他继续问,那你觉得你的代码能力怎么样,啊?啊啊啊,
- HashMap的底层实现原理?(数组+链表/红黑树,链表转红黑树条件)
- HashMap的扩容机制?(负载因子、JDK7 vs JDK8扩容优化)
这个怎么说,感觉项目有的地方面试官以为我是另一种实现,因为他没让我说流程,然后他问的时候我就感觉很蒙圈,后来我复盘才反应过来,他是基于他脑子里面的实现问我的,所以我蒙圈了,我以为是我哪里没想到,今天才发现是根本没在一个频道。 我想了想,要不要改简历呢,把流程说具体?或者还是等他问,但是问的时候我不要马上宕机给他说清楚我的流程,再继续
有的时候没听懂面试官的意思还是不要有撞着回答的想法了,先努力确认面试官的意思到底是啥,不然都不在一个频道肯定听不懂,面试官体验也不好,自然就挂了。
还有就是我发现这个面试官问的问题也许有一个基于其他MQ,虽然我写的是RabbitMQ,问RabbitMQ的重试机制是怎样的?消费者处理失败后,消息会怎样?是丢回去换消费者重试,还是本地重试?我当时傻了,不就是ack,nack吗,不知道面试官想问什么,后面我才明白是RocketMQ有原生的重试,可能他是想说这个
我以为面试官会问我一些我的实现流程什么的,但是感觉可能更多基于面试官自己更喜欢问的惯性?这个也不知道怎么解决,有点无边无际的感觉,只能说尽量多准备再多多面试吧
不过这个面试官确实说了很多边界情况帮我完善了项目话术,想想还是我赚了(狗头),自己再让AI问点边界情况准备准备好了
#面试#面经与凉经 文章被收录于专栏
给我面!!!!