WXG一面凉经

一面

先两道算法题(三十分钟),再问项目,根据项目具体内容提问八股(二十分钟)。被狠狠拷打,水货原型毕露,不过面试官非常的好,对答不出来的也会加以引导。

以下回答如有错误,请各位大佬点点😭

算法题

面试官说哪个语言写都可以,但是我C++有点忘了,换的Java写的。

  • 子集 - 力扣78(LeetCode) ******

    直接dfs暴搜

  • 找到两个串的最长公共子串,若多个任意一个均可

    LCS典题。一开始二分想假了,然后直接dp秒了,这里先写的二维dp,跟面试官说可以滚动掉一维,然后演示了一下。

项目和八股

  1. 介绍项目内容,设计是怎么样的?这套系统如何考虑设计的,从技术实现上来描述一下,比如涉及到的服务、模块、功能、层次?

    没条例性地胡扯,想到什么说什么

    • 比如如何设计后台接收用户请求?

      先通过Nginx转发请求,然后进行身份鉴权,最后才到我们的Controller

    • 这里Nginx转发的作用?

      一是反向代理,隐藏真实的服务器地址,将请求转发到上游服务器;二是负载均衡,缓解服务器压力

    • 负载均衡的方式?

      轮询、响应时间、权重、随机、区域

  2. 项目是怎么实现的,用了什么框架?

    主要是主流框架SpringBoot、MyBatis,没用中间件

    • 你指的中间件是什么?

      RabbitMQ、Gateway

    • Gateway是做什么的?

      负载均衡、反向代理、请求拦截

  3. 服务直接连的数据库吗?

    使用了Redis缓存,先查缓存再查数据库

    • 缓存更新策略

      主动更新 + 延时删除,以保证数据一致性

    • 假如数据库更新成功,但是Redis因为延迟等原因更新失败,你想保证两者保证“事务性”,即同时成功同时失败,该如何处理?

      不知道

      延时双删:先删除缓存,然后更新数据库,延时一段时间,然后再次删除缓存。 ******

      消息队列:数据库更新成功后,将更新操作放入消息队列,由另一个服务消费消息并更新缓存。******

    • Redis缓存存在的问题?

      缓存穿透、缓存击穿、缓存雪崩,讲了其各自的原因和解决方法

    • 你说解决缓存击穿使用互斥锁,但那些未拿到互斥锁的线程等待时间过长,查询过程就变成串行了,怎么解决?

      不知道

      反问时,面试官回答的答案:

      一种解决方案是请求合并。对于请求相同key的线程,只让一个线程去查询数据库,其他线程等待这个线程的查询结果。这样可以避免多个线程同时查询数据库,减少数据库的压力。这种方案在Go语言中的GroupCache库中有实现。

      另一种解决方案是使用限流。对于请求频率过高的key,可以限制其请求频率,超过限制的请求直接返回异常,而不是等待。

    • 访问Redis使用TCP还是UDP?

      不知道

      来自ai的回答:

      Redis使用TCP协议进行通信。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它能确保数据在网络中的可靠传输。相比之下,UDP(User Datagram Protocol)是一种无连接的协议,它不保证数据的可靠传输。由于Redis需要确保数据的可靠传输,所以选择了TCP协议。

    • TCP与UDP的区别?

      忘了,寄,八股没背熟

    • WebSocket使用TCP还是UDP?

      不知道,然后瞎吹。因为WebSocket需要保证数据的安全稳定,比如TCP对丢失的数据包会有超时重传的等方式以保证数据稳定。

      来自ai的回答,同理Redis。

反问

  • 问了实际是如何解决缓存击穿、缓存雪崩

  • 我存在的问题和不足

    题目做的还不错,认为与你参加比赛的经历有关。

    但在项目实施上,没有深入思考和探索其中的问题,只是完成了一些基本功能。深入学习和理解使用的技术和框架,例如Spring Boot,理解其内部运行机制。

#实习基地##面经#
全部评论

相关推荐

06-25 16:25
梧州学院 Java
愿汐_:项目介绍那么长,然而你做了啥就一句话?
点赞 评论 收藏
分享
06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
07-17 12:07
门头沟学院 Java
勇敢牛牛不怕困难
投递OPPO等公司7个岗位
点赞 评论 收藏
分享
评论
6
27
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务