面试复盘|成都百度Java提前批三面

面试复盘|成都百度Java提前批三面

我看一些百度三面都是聊天,加上前面面试比较水,而且这个部门说实话我是不怎么想去的。所以这一面基本没怎么准备,但好巧不巧的是遇到一个面试官在家面试,问了一些技术,刚好我又不会,他总是皱眉,表情不大友好。果然面完之后第二天就简历共享了,惨!

三面 7.28 40分钟

  • 介绍IM即时通讯系统的项目

  • 你使用的是websocket协议吗? 有聊天界面吗?

    因为我是采用的netty自定义协议,也没有写前端,是通过终端命令来的,所以这里没有前端

  • 项目的总体架构和流程

    我讲了客户端发起请求建立连接,然后群聊、私聊等等过程

  • 用户下线的功能是怎么做的

  • 如果redis删除数据失败了怎么办(项目中用户下线后需要删除redis)

  • 用户登录功能是怎么做的

  • Redis的高可用了解吗?

    这里我答得不怎么好,说了redis的持久化机制和集群。但他想问的应该是哨兵机制相关的吧

  • redis集群和哨兵模式的优缺点

    这里越说越不对劲了,自己给自己带坑里去了

  • Kafka你了解哪些?

    这里本来应该可以背一背准备好的八股文,但我脑子抽了就不想背,问他想知道哪些,这里就把主动权交出去了,大忌大忌!!

  • Kafka的基本架构是什么

    我讲了producer、consumer、broker等基本概念,这个问题之前没怎么准备过,有点宽泛

  • 你的消费者和线程之间的对应关系是怎样的

    我就只知道一个消费者对应一个线程这种。然后我主动说如果需要使用多线程的话,那么可以一个线程去拉取消息,然后通过一个队列,来启动多个线程进行消费。其实是网上博客看的,我也没怎么懂,教训就是千万不要自己给自己挖坑说一些模棱两可不禁问的东西

  • 你刚才说用一个队列,那如果一条线程消费的手挂掉了,那offset是怎么提交的

    然后这个地方说不清楚了,我都说不会了,这面试官不肯放过,还一直问,我也没办法,GG

  • JVM的内存模型

  • 线程同步的几种方式

  • 可重入锁底层的实现(AQS)

  • AQS是怎么实现的

  • AQS的state变量是如何修改的

  • 线程切换的过程有哪些(保存现场,移出可运行队列,放入等待队列)

  • 进程和线程的区别

  • 设计模式了解哪些(单例、工厂、策略)

  • 工厂和抽象工厂模式的区别(这。。都没听说过)

    然后他说这不应该不知道啊,netty底层设计都用了抽象工厂模式。我又没研究过netty使用的设计模式...

  • 对于加班怎么看?

    我说最好加班在干一些实际有意义的事情。然后他开始杠了,怎么才算有意义呢?如果项目进度拖慢了,你愿意加班吗?

    我说短时间可以,长期不行。他又杠如果就是长期怎么办,我心里想还能怎么办,还不快跑嘛

    问到这里我就已经无语了,加班搞得他很光荣一样。。。

  • 团队意见不一致怎么办

  • 你有想过帮助其他人成长吗?(满脸问号)

  • 还用过其他语言和技术栈吗?(python和go)

  • 反问部门业务啥的,走个过场。

讨论和交流

一些答得不好的地方

  • redis的高可用机制,这个不是很清楚

  • Kafka的多线程消费怎么做

  • 抽象工厂模式

总结

面试还是要掌握主动权,主动说自己会的东西,了解的知识。三面问了一些技术,确实也是盲区了。面试官态度也不怎么好,体验很差。总之答得不好,体验也很差。再接再厉

#面试复盘##校招##百度##java工程师##面经#
全部评论
老哥能说说你IM即时通讯系统是做的哪个项目?😭😭
点赞 回复 分享
发布于 2022-04-26 19:28

相关推荐

不愿透露姓名的神秘牛友
11-27 10:46
点赞 评论 收藏
分享
评论
3
15
分享
牛客网
牛客企业服务