蔚来后端实习面经
1335
发布于 未知归属地

蔚来一面+二面面经

  1. 自我介绍有提到蓝桥杯,介绍了一下这个竞赛,着重讲了一下AC赛制和OI赛制的区别,考察什么算法比较多,毫不犹豫回答图论,接下来便是地狱般图论面试。

  2. 博客上有写堆排序的文章,讲一讲堆排序怎么实现,构建堆的时间复杂度为什么是 O(n)不是O(nlogn),堆排序的时间复杂度。

  3. 介绍一下快排的思路和时空间复杂度。

  4. 说说迪杰斯特拉算法,怎样实现?你怎么确定保证没有更近的到这个点的距离?(这里直接举了个例子说明了一下,其实面试官是想引导我说出有负数权值的边不适用于迪杰斯特拉算法)和floyed算法的区别?

  5. 有了解A*算法么,介绍一下A-star算法和bfs算法区别,估价函数怎么写。欧几里得距离和曼哈顿距离的区别。(一套组合拳打的我好痛)

  6. 然后是MySQL经典八股文,innodb的锁有哪些?

  7. 什么时候会上锁,上表锁还是行锁取决于什么?

  8. 算法题 leetcode79单词搜索 直接dfs爆搜

​ 写完了面试官说我这边没有其他问题了,等一下下一个面试官会进来继续面试。

  1. 二面自我介绍完开始问项目,介绍一个项目的功能。

​ 讲了一下项目的登录,扯了一下微服务架构session共享问题后引入jwt,jwt的实现和作用。然后jwt不能主动失效,logout后token仍然有效可能有安全性问题。加redis存储token解决token主动失效。

  1. 项目的高并发点赞如何解决?

    mysql扛不住的并发让redis来抗,redis存储点赞数量。然后定时同步到mysql数据库。

  2. 追问在redis中两个用户同时读取点赞数10,然后点赞变11了这种怎么解决。

    想说给点赞加上事务的,但是redis事务好像不支持回滚。突然想到redis实现分布式锁的策略,回答:点赞是两个操作,首先查看当前点赞数然后给点赞数加1。lua脚本支持原子性,可以把这两个操作写到lua脚本中来执行。(PS:感觉面试官对这个回答还比较满意,然后问下一个问题去了)

  3. MySQL的默认隔离级别,介绍一下这个级别能解决了什么问题。

    可重复读,介绍了一下事务间的不可重复读和幻读,然后说了一下MySQL的MVCC机制在事务第一次快照读时候创建ReadView,根据ReadView读取读取对应版本的数据。

  4. equals和==的区别

  5. 聊一聊你对Spring AOP的理解和使用

    这个也是经典八股文,奈何没背过。就讲了讲写日志的时候可以用

  6. linux进程通信的方式

    没了解过,扯了扯PV操作和信号量,面试官说这答得不太好

  7. 介绍几个常用的linux命令

    ps -ef查看进程,e是显示全部的进程,f是显示全部的列

    top命令 动态查看当前进程占用cpu内存情况

    cat more head tail看日志

    还说了cd mkdir mv cp这些基础的命令和rm -rf

  8. 算法题:leetcode 110平衡二叉树。(看到这道题心里已经开心坏了,但还是假装抓耳挠腮,假装思索,恍然大悟,写了个暴力,问点提示,写出最优解。)

    我估计面试官也知道我做过这道题,还是配合我演出了一顿。最后吐槽了一下我的代码缩进和方法命名,然后问能实习多久优先考虑北京还是上海,反问多就能出结果没了。.

评论 (3)
暂无评论