【得物】Java岗-第一次面试记录

先简单聊了两句,交代了一下大致需要的时间,然后就直接步入正题了(面试官人超级nice)

  1. 从项目开始问,看到我用了Netty,问我怎么用Netty来做RPC框架
    我介绍了一下我用Netty的原因和使用场景(跟设备保持长连接用),没有做过RPC

  2. 针对项目,问了我关于Netty的一些细节

  3. 之后聊到了数据库设计的一些细节,比如数据量多少、我是怎么设计的等等

  4. 然后讨论了一下我本科期间那个项目,看我用了Docker,然后问我对Docker了解多少
    没了解多少hhh,只记得为啥要用Docker了(移植快、部署方便、方便扩容缩容、开发和部署可以平行移植环境等等)

    面试官也说 以前他也蛮喜欢Docker的,可惜(哈哈哈哈哈)

  5. 场景题1:你在家里用浏览器访问www.baidu.com的过程是怎么样的
    先是输入网址,按下回车, 浏览器发送请求到DNS服务器,DNS服务器解析出IP地址,然后访问对应的服务器,服务器可能还会有重定向,然后就是和服务器建立TCP连接,发送http/https请求,然后服务器返回数据,浏览器解析页面。

中间面试官问了我一下,浏览器怎么知道你按下了回车,给我愣了一下。

我回答,大概是监听的机制,通过监听我按下哪个键然后做出对应的操作

  1. 场景题2:如何设计一个排队系统(商场饭店的那种排队取号系统)
    首先确定了一下场景,是面向单个店还是面向整个区域(确定了是区域),然后说可以用队列的形式存储每类桌子的排队情况,再开一个叫号的队列,把排到的号子移到叫号队列中进行广播。

6.1. 如果数据要刷盘的话要怎么设计表结构,就假设我们用MySQL好了
首先我确定了一下分表的原则,先说了按照商家来存储的话,可以每个商家开一个表存,但是考虑到每天可能都有新店进来旧店出去,会频繁新建和删除表,不现实。后来我说按照时间分表可能更合理一些,这样的话就要新建一个商家表来存商家的信息(比如uuid、店名等其他信息),再开一个按日期分表的订单表(或者排队表),记录排队的uuid、对应的店家、排队号、开始时间、结束时间等

  1. 问了我本硕期间那么多专业课最喜欢哪个
    数据结构+算法(笑)

  2. 反问环节
    总时长大概在25-30Min左右,和最开始面试官跟我说的时间差不多。

发表评论

后才能评论