春招实习面试回顾:从面试连跪到收割offer


2a3e641b-f206-4135-815b-36f8d9b9eb6b

CVTE(offer)春招实习

一面

1数据库设计

2冗余

3范式

4反范式

比较少见的问题,但是不难,范式用于减少数据冗余,反范式则可以避免多表连接。

5指标优缺点

6索引实现

7 mysql引擎行级锁表级锁

8找到数组中第k个最大的数字。

剑指offer原题,不过我当时只想到了先快排再找第k大的数。实际上在快排过程中就可以找到第k大的数了。

二面

1数据库设计

2聊天

hr面

面试官一对二面试,问了半个小时,听说挂人很多,不过最后我们两个一起面试的都通过了。

蘑菇街(offer)春招实习

一面

1 JAVA jvm:内存模型,代代的介绍,每代的操作,gc算法。

2类加载器,父母委派模型,父母实现,反父设计,类隔离。

这部分问的很深了,特别是最后两个问题,把我问懵了。当时面的应该是基础架构部门,所以做的技术偏底层,问题都比较有深度。

3 hashmap实现,concurrenthashmap实现。

4易失性实现,锁定分类介绍,AQS介绍,公平锁定不公平锁定介绍。

当时压根不懂AQS,对于锁的几种类型也不够熟悉(互斥锁,轻量级锁,偏向锁)。这部分内容强烈建议看《Java并发编程艺术》以及《深入理解JVM虚拟机进行学习》

并发和并发中的5 threadlocal原则。

6 tomcat介绍

7三个任务,每个任务id都是长类型,如何使用长表示所有三个任务都已完成,不能使用countdownlauch。

答案是:使用三个id??&,若为0则完成否则不完成。(位运算性质)

8 NIO和BIO之间的区别

当时对NIO和BIO的底层原理不了解,只会回答很浅显的区别,实际上需要更加深入去分析,BIO的本质是基于阻塞IO的socket完成通信,而NIO是基于IO多路复用来实现的,在Linux上的底层实现就是epoll。

9 Spring的AOP和IOC

10使用数组实现地图,可以使用i存储密钥,i + 1存储值。

11使用数组实现链表,我保存自己的下标,i + 1保存一个节点下标,i + 2存储该值。面试官要求轮班工作。没有回答,而是问了问题7。

二面

非常水,问项目,询问学习经验,问一些无所事事。

要阅读哪些书籍以及要学习哪些技巧。

HR面:

我完成了采访并要了半个小时。我感觉很好。

现在回想起来,当时蘑菇街和美团的offer也是不错的,不过因为笔者一对网易游戏有情怀,最后还是选择了它。

至此,我们找实习之旅也到了尾声。以上就是我全部的实习面经了,不知道大家看的过不过瘾呢。

如果你也有面经想要和大家分享,那不妨来找作者投稿吧。每一段找实习或者找工作的经历都是各不相同的,相信你的那一段经历也值得收藏。

点击原文链接,免费领取10本程序员经典必读电子书!

http://m.peanut-oil.com.cn