美团的二面就是拷打项目
面试官人很好,上来先介绍了他们的业务。
反问面试官:看你们的业务用到了流程驱动,这个流程驱动是如何实现的呢?因为以前用过相关的流程驱动引擎,项目里也用到了状态模式来刻画流程。
然后再让我做了自己介绍。因为一面的时候,小姐姐引导我说介绍java相关的项目,所以二面的自我介绍改变了策略,介绍了我的lottery抽奖项目。
- 问:你觉得什么是高并发?什么因素会影响高并发的性能?
- 项目中使用了状态模式和模版模式,问这两个模式的区别?还知道其他哪些设计模式?
- 问了面向对象三大特性,你对这三个特性的理解是什么?
- 问Mysql的索引。聚簇索引跟唯一索引的区别?
- 为什么要分库分表?分表的好处是什么?
- 回答上一个问题的时候,提到了当时处理的时候数据量比较少,分表可能优势不是很大。追问:有没有研究过小数量下的分表?知不知道原理?
- 回答上一个问题的时候,提到了自己对原理不清楚,但是在做数据库压测的时候,发现了这个规律,问用什么进行的压测?对压测工具的底层实现了解吗?
- 回答上一个问题的时候,提到了是用gatling进行压测的,对数据库是用JMeter实现压测,不清楚底层原理。问:如果让你设计一个压测工具你会怎么实现?
- 回答上一个问题的时候,提到使用线程池,问线程池的实现原理?几个重要参数?几个淘汰策略?你有用过线程池吗,具体是什么场景?
- 问Redis的雪崩和穿透的区别?怎么解决。
- 你知道Java的双亲委派机制吗?
- 了解Java的内存模型吗?说了主要的运行时模型。
- 回答上一个问题的时候,提到了内存溢出的问题,问主要的内存溢出问题有哪些?StackOverflowError和OutOfMemoryError,问这两者区别是什么?追问,怎么排查OOM?追问,怎么调整堆区的大小,说出具体的指令?
- 了解GC吗?说了堆区的几个重要的回收策略。
- 问:你平时是如何进行学习的?回答了使用技术博客,面试官要了博客地址,然后让我快速地说一个最近在研究的技术点。
题目:放水了一道数组题。
反问环节
- 如果我加入贵部门,我还需要做些什么才能更好地融入。
- 问了面试官对我的建议。