发布于 

得物一面

09.02 得物一面

  1. 自我介绍

  2. 数据库为什么用B+树作为索引?

  3. 现在SSD的IO这么快,对数据库而言有什么比B+树更好的索引数据结构吗?

    这里我答了前缀树,但是说了一下我并没有去对比前缀树与B+树具体的优劣,面试官说没事,他也只是问一下,想探讨一下。

  4. 如果虚拟机发生了Full GC,该怎么排查问题?

    这里我答了Full GC的触发条件、内存溢出怎么排查、虚拟机参数设置不对导致Full GC。

  5. 讲一讲TCP三次握手

  6. 如果程序发生死锁该怎么办?

    这里我讲了讲死锁产生的原因和四个条件,然后分别讲了破坏其中三个条件就可以避免死锁。

  7. 如果用户下单时出现网络异常,导致由多个下单请求或生成多个订单号该怎么办?

    这里我介绍了一下我项目里这种问题是用RabbitMQ来做,将订单放到消息队列里,然后balablaba。。。。

  8. 怎么保证唯一ID呢?

    我回答的是用UUID或者雪花算法生成唯一标识ID。

  9. 那如果以时间戳来生成唯一ID,项目里如何区分用户是误触多次下单还是真的想要下单呢?

    我介绍了我项目里用时间段来作为唯一表示ID,面试官说我这是提前设置好了下单的规则,如果是淘宝呢?该怎么办?

    然后面试官说可以慢慢想想,看看有没有什么思路?

    我后面又说了可以通过加锁,来控制用户下单时操作的唯一性,然后说了一下思路。。。。。

    面试官说对,他就是想考锁相关的知识。

  10. 现在有10亿条数据,但是处理的内存只有400MB,如何找出其中第10000到11000条数据?

    这个就是很经典的处理海量数据的题目,没啥多说的。

    直接分治法 + 小根堆排序就能解决。


本站由 Cccccpg 使用 Stellar 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。