58同城一面凉经-发面经攒好运
问项目比较多,问八股比较少
开面
面试
- 问了下实习项目,职责是什么
- 登录使用jwt,为什么不使用Auth2(jwt更加轻量...,面试官反问那么扫码关注微信公众号登录不是更好吗?脑子不够用了... ps:事后想起来,公众号没申请企业资质(>_<)
- 除了jwt你还知道其他的登录方式吗(Cookie seesion oAuth,)
- 消息队列你使用的是RocketMQ,为啥使用这个(主流就Rabbit/Rocket/kafka,说了下RocketMQ相比其他的优势)
- RocketMQ消息丢失会怎么办(这里说的有些混乱,首先是RocketMQ的重试机制,然后是发送消息的异步,MQ消息补偿)
- 你定时任务使用的是线程池,定时任务是怎么实现的(ScheduledThreadPool,队列使用的是DelayQueue,DelayQueue内部使用的是PriorityQueue,其内部是平衡二叉树堆实现)
- 自己如何实现一个定时任务(回答注入线程池bean,Componment实现CommandLineRunner,重写run函数,将定时任务放入。面试官对这个回答不是很满意,和我讲应该从概括到具体,比如:设计定时任务,首先要设计创建定时任务,运行,取消三部分,然后再到具体的设计。ps:学到了
- 进程和线程的区别(从资源切换上,一个进程有多个线程)
- 为什么进程切换资源耗费大(回答的有些混乱,扯到了内核态和用户态的切换上了,其实冷静下来不难,进程下多个线程共享堆和方法区资源,进程之间是独立的)
- Mysql的char和varchar之间的区别是什么
- 撕题目-快乐数
- 对aigc的看法(开扯)
- 实习地点和实习时间
反问
- 还有hc吗
- 后续流程,过了会hr面(应该过不了》_《)
- 不足(学新东西有劲头,但基础不扎实,多看看计算机基础)
总结
还是收获颇多的
- 1 如何设计什么,要先从宏观到具体,增强设计思路的条理性
- 2 加强基础,鼠鼠八股文中计算机基础可以说一窍不通