暑期实习面试总结(Java后台)
先介绍下基本情况:本人本科是末流985,研究生是985,水平一般,没有做过太大的项目,做过几个ACID类型的项目,不值一提。这次投的都是Java后台,这次找实习经历了差不多一个月的时间,最后去了菜鸟,下面跟大家分享下这一个月的心路历程,哈哈。
很多公司其实在18年年初,就开始招实习生了,我有很多同学都是在年初的时候就开始找并找到了不错实习,找实习还是要趁早,这个时候投的人少,有招人说明有需求,竞争压力也小很多,我们很多人在面试前想系统的复习一下,复习完再投简历,这无可厚非,感觉还是自己找好一个平衡点吧。
过完年,刚刚开学,华为就来学院招聘,先是机考,然后安排面试,3道机考题还是比较基础的,不涉及复杂的算法,多是字符串的处理,考察的是编程基础,面试问的也比较简单,让自己实现一个栈,问他用不用考虑线程安全,他说不用,这个还是很基础的,考虑了边界值,扩容等,然后就是聊项目,介绍项目,之前做的多是web网站,问了Spring的核心原理,二面就是聊家常,基本没问技术,聊职业规划,感兴趣的地方。虽然我投的是Java应用方面的开发,感觉面试官不怎么懂Java,经常是提出问题,回答完了就完了没有深究,华为面试通过了。
紧接着就投了菜鸟,今年菜鸟简历爆炸,找学长内推,两天后收到电话一面面试(后来了解到我们的一面其实在他们内部是简历评估,二面才是一面),晚上打来的电话,问了近一个半小时,面面俱到,Java基础、算法、数据结构、项目、问计算机网络熟不?我说不是太熟,然后就没问,风格就是Java包中对哪一块比较熟,答之,然后怼你熟的这块。问了HashMap的扩容过程,HashMap重哈希,还有哪些集合类用到了红黑树,红黑树的基本特征、是不是自平衡树?两个链表有一个公共节点,如何找到(直接看尾节点),SpringMVC的原理,ResponseBody注解使用、Servlet机制,数据库的隔离级别举例子说明,还有就是具体的项目问题。然后过了两周才来二面,只面了15分钟,问什么情况会导致JVM进程崩掉?数据库查询变慢什么原因,linux进程与线程,linux内存模型,内存分配方式,静态分配,堆,栈分配,GC频繁的原因和解决方案都是些总结性的问题,答的不好,感觉跪了。后来又过了很久通知去公司现场面试(感觉是死而复生了),经历2面技术面,现场一面聊基础,问项目经验,实习经验,手写基本的排序算法,StringBuffer实现,Spring bean生命周期,有没有用过扩展点等。二面看我本科做的项目用的是SSH,问了很久的Struts2,其实并不熟,一直往SpringMVC上引,最后问了SpringMVC比Struts2的优势,然后介绍JVM垃圾回收机制,介绍下Java8新特性,和你认为以后Java的改进方向(说了垃圾回收,语法优化,即时编译器的优化),最后面试官问:你有什么要问我的吗?我说:面完之后用不用再等下?(哈哈耿直),面试官沉思3秒,说今天就到这了吧,现场面基本有Hr面的,所以一首凉凉献给自己,菜鸟未完,待续。。
菜鸟现场面完第二天,就参加了拼多多的面试,3面,一面考察编程,手写两个有序数组的中位数、写一个权值不同对应的概率也不同的随机函数,打印蛇形矩阵。都是经典题,但是发挥的不好。二面是HR面(纳尼),就问手上offer啥的,我之前以为有offer尽量不说,怕公司自卑最后怕因为给你发了offer你不去就不发给你呢?还是太单纯,有好的offer一定要说出来,也是实力的证明,三面全程问数据库,MySQL innodb和myIsam引擎的区别,innodb比mylsam好在哪里,mylsam比innodb好在哪里,各自的应用场景;手写分页查询sql、redis介绍、为什么速度快、一致性hash等。感觉回答的还可以,拼多多凉凉。
美团一面是牛客视频面试,问了Integer和int的区别,垃圾回收,堆分区,基本的排序算法的时间复杂度、空间复杂度,稳定性等。写了一个求TopN的方法,都是比较基础的问题,历时半个小时吧,二面电话面,15分钟,杯子量水(5L,3L量出1L水)以及怎么实现,海量数据的排序,我说如果有重复,用多路归并,,,没有重复用位图法,一个数字一个bit位,又问有重复位图法不能用了吗,重复数量不超过8?答用一个字节代表一个数,重复的字节内做计数。后来通知美团通过了,本想着去美团的,都开始找房子了,不料再生波澜。。
菜鸟Hr电话面试,问有没有经历啥大的挫折,分享最让你感到骄傲的事情等(感觉死而又复生了),又过了一周才收到菜鸟的录取邮件,算是成埃落定,这是后话。
菜鸟Hr面后又参加了网易杭研的面试,三面,网易的面试官是所有面试官中我最佩服的,问的最难的感觉,哈哈。一面:看我搞过移动端,调过支付宝,微信的支付接口,问我如何保证通信内容的安全,答加密,对称加密等,Java的虚拟机参数用过哪些,跟类加载有关的参数,类加载机制,如何自定义类加载器,怎么实现?findclass和loadclass的区别,如何让一个类的静态变量加载两次?Java中违背类加载的有哪些情况,怎么实现?Spirng的反射机制,bean注入方式,@Resource和@Autowrie注入的区别,两个可以实现等同吗,如何实现?Spirng的扩展点有哪些?具体怎么用?(没用过),还有数据库事务的隔离级别等,介绍知道的设计模式、装饰者和适配器模式的区别,装饰者和***模式的区别、感觉都不问常规问题哈;二面问数据库的意向锁,动态***有哪些,然后问了cglib或者其他的多层***具体实现javaassit和asm的具体实现原理,maven列出工程依赖,画出静态***模式的UML图;三面hr就是走流程;后来网易告知通过了,不过在这之前就收到了菜鸟的录取意向书,当时就回绝了。
这就是我一个月来找实习的经验,与大家共勉。
#春招##实习##Java工程师#