携程(后台开发工程师(留用实习)),6.12一面面经
6.12号面试,一面,5月31号通过扫码投递的简历,没有笔试,直接面试的
5点15面试,面试官迟到大约10分钟,我以为自己被鸽了
面试官人超级nice,不管最后结果咋样,是我遇到态度最好的面试官,后面的确就慢慢不紧张了,但我总体面的是不错的,但是面试官多次强调我一个女生做后台不容易,不知道是在拒绝我吗?下面开始写面经,共计49min,好多问题记不太清楚了
1.闲聊3分钟,说女生不合适后台,趁早学算法吧...
2.我本人强行自我介绍,当时面试官可能在对比我简历看吗?反正我介绍过程中全程没抬头
3.简单聊了项目,明显感觉到因为我是女生,是不想要还是怎么地问题就很简单,他也很宽容
4.一道算法题 给一个数组只有一个元素是单个的,其余元素都是两个两个的,问怎么查出来单个的元素(这个题做烂了吧,我一紧张,就说是放个map里面吧,记录下每个元素的count,最后找出来是1的,面试官说让我写吧,其实我当时也不一定能写出来,然后还没开始,面试官说优化下吧,最后得是用了几分钟,给我提示出来了,我真的太蠢了,然后面试官多次强调不要紧张,已经做得很好了...)
5.collections都有哪些实现类,回答List和set,map不是,又问map有哪些,说了linkedhashmap hashmap concurrenhashmap,treemap,继续问hashmap底层结构,全家桶机制我还是熟的,但面试官没问,继续问hashmap concurrenhashmap有什么不同,我就只说了线程安全方面,解释后者为什么会安全,其他的一时也没想到
6.list有哪些,说了ArrayList和LinkedList,一时没想到别的,让解释两者的区别,说了有点太少了,面试官又问ArrayList如何扩容,感觉这里有点说的太浅了
7.int 和 integer区别,面试官说可以关注细integer的什么流,没听明白
8.== 和 equals区别
10.讲下线程,单独讲线程不知道说啥我就扯上了进程,说了两者的区别,其中一点是我之前看的进程之间资源不共享,面试官提醒我说互相通信的时候资源是共享的,自己又扯到了多线程,面试官问你知道线程管理吗?给我提示了一些参数,这个真没关注过,然后问线程池,是否了解,回答了为什么要有线程池,然后四种线程池,这块名字太长,说了每一个的作用,答得一般
11.问是否了解锁,我就说了synchronized和reentrantlock,解释区别
12.问jvm内存模型,方法区,堆,虚拟机栈,本地方法栈,程序计数器,简单说了每个的作用,又问堆里面的结构是怎么样的(新生代 老年代 永久代(8变成元数据?))不知道对不对,又被继续问新生代老年代如何划分,又问GC回收算法,说了四个,又问知不知道CMS,我说是默认的老年代垃圾回收器(此处已经全部凭感觉了)又解释了Eden和两个Survivor,这块解释的不好
13.回到项目,问如何保证不超卖,顺带解释了如何保证不重复下单,这里面试官质疑超卖方案,还认为我每次都要访问数据库,我又解释是加了很多层不同粒度缓存的
14,解释项目中如何接口防刷限流,到这已经脑子记不清楚了,答得不好
15.最终QPS多少
16.反问环节
还有些是在记不清楚了,面试官说挺满意的,不知道真假