大四寒假实习——面试总结

 

只有经历过才会有感受,人想要真正成长,必须自己独立的去做一切之前没有做过的事。

 

零、面试准备(关于Java和大数据方向)

1、大学专业课程的准备(有面试官会问你大学课程什么掌握的最好,来,咱们细聊)

2、算法方面的练习(这个本人感觉一时半会是提升不了的,得经常练习)

3、项目的介绍

4、针对自己的简历复习,针对公司外放的招聘要求复习

Java开发方向:重点是Spring的,关于SpringMVC、MyBatis等框架还没遇到(不过本人面试的少)

大数据方向:关于大数据的,例如HDFS、MapReduce、Hive、HBase等要有自己的强项,重点复习,因为可能面试官因为你某个学的好,就要你了

 

若有余力,建议掌握Redis,这个感觉问的多

最好学学ElasticSearch,因为刚看了一篇文章,感觉这个应该有用(个人猜想)

 

 

一、面试的路上(可以跳过,直接看  二、面试遇到的问题 )

 

经过了大约两周的面试,加上就业的“寒冬”,过程不管如何,总算找到了很满意的实习工作。记得是在三周前,我大学专业的领路人兼我的大学舍友,突如其来的有个面试的机会,刚听到这个消息时,还算镇定,虽然知道他是那么的优秀,但毕竟是人生中第一次面试。

 

中午临午睡前,看见群里他发的消息,通过技术面,就差HR面,关键的是技术面的面试官请他吃了中午饭,我就一下子慌了,毕竟是大学几年跟随他的脚步过来的,他这很突然的找下了工作,我整个人都懵了。

 

恍恍惚惚的过了两天,才意识到自己在不抓紧时间的话,今年就真的找不下自己满意的工作了,于是就问舍友将其之前准备的复习计划要了过来,开始面试的准备。

 

在第一周的时候,是一边复习,一边在网上投递着简历,刚开始几天没感觉到什么,毕竟初次接触,但周围同学陆陆续续的出去面试,以及回来的之后的聊天,使得我对自己产生了怀疑,认为自己大学几年加之最近的学习是不是白付出,因为感觉平常不是很用功的同学找下了工作。在第一周是真的难受,但还好,难受归难受,该去教室学习、复习的时间还是去了教室学习、复习,即使效率不是很高。

 

在那一周时间,最多的还是想到:

自己复习哪里的知识呢?

复习的知识出去面试会被问到吗?

之前没有自己仔细研究过的,但感觉出去被问的知识用不用仔细研究呢?

自己每天坐在教室学习、复习有用吗?都没有面试的机会

 

还好,第二周开始时,询问了一位经常出去面试的同学,看了看他的简历,根据他的简历作了修改,陆陆续续的收到了预约面试的电话,过程就不细写了,总之想说的是:

1、要好好准备,不要等到机会来临时,因为自己的准备不足而导致机会的丢失;

2、最为重要的(自我感觉最重要),不管自己知识掌握了多少,最起码要把自己知道的全部正确的表达出来,尤其是在面试的过程中,毕竟面试与平常不一样。

还有就是面试过程中遇到不知道的,能说出类似的解决,也是不错的,但不会就是不会,别跟面试官拖时间,这个不会、不知道,最好是由自己说出,跟面试官说声对不起,这个问题现在的自己暂时回答不了;

3、知识的积累也不要落下,毕竟没有知识的储备,即使过了面试,也只是空中阁楼。

 

二、面试遇到的问题(以下具体公司就不写了,怕麻烦)

以上呢是个人感受,下面是我面试过程中遇到的问题(提醒:别人的面试问题只是别人的,你看自己的面试问题,和看别人的面试问题,感觉是不一样的

 

顺序都是乱的,只是想到那个就写的那个,但大体上根据Java基础、框架方面、数据库、大数据、项目的顺序写的。

 

A公司——BI工程师实习(印象最深的,毕竟是第一次面试,不过重要的是面试官给了自己很大帮助,将我自身以及简历上的毛病挑出了不少)

1、多线程的实现方式

2、数据库中ACID是指什么?

3、SQL的书写(当场给的案例,当场手写),两张表,关联查询

4、聚合函数与group by

5、ZooKeeper的节点操作

6、你是如何使用ZooKeeper的?

7、MapReduce中什么时候使用Combiner?

8、MR的执行流程(此处问的是程序中mapper与reducer),例如在统计单词的时候

9、Shuffle中的sort在哪发生?什么时候不发生?

10、Hive的元数据库在哪里存放?

11、Hive分桶表的作用

12、Scala与Java的区别

13、Scala中的Map与Java中的Map添加元素的实现(此处是坑)

14、关于Spark没有问,只是点出那里面能问的东西很多,掌握不了,最好别往简历上写

15、针对简历上,项目方面的问题(仅供参考)-- 网站流量分析

1)如何将用户的消息存储到Flume?

2)数据的清洗是如何完成的?

3)Hive是如何将数据进行存储的?

 

B公司——Java开发实习(群面-一个面试官三个面试者)(这家公司面试官问的问题还不错,唯一不好的就是最后让走实施)

1、讲讲多线程(本人感觉回答这个问题,先回答多线程的实现方式)

2、介绍你了解的设计模式(回答了单例模式,但又追问工厂模式)

3、你在什么地方使用过什么设计模式?

4、关于网络通信,在哪里使用过,具体过程

5、讲讲对Spring的认识,AOP如何实现事务控制?

6、你在平时项目中经常使用的注解,Controller层中使用过的注解

7、讲讲对SpringBoot的认识

8、redis的问题以及redis如何实现缓存这一功能的(由于是群面,虽然我简历上没写,但还是被问到了)

9、对Hadoop的认识,HDFS是如何实现的?(这个是我的简历上写了)

10、关于简历上项目的提问,问的很深(自我感觉:若是你的项目简历刚好是面试官最近经常接触的,答的好是加分项,打不好就惨了;若是面试官了解的不多,不会细问,只要他问清楚就OK了)

 

之后的问题现在就感觉是在往实施那个方向转的问题

11、使用Linux做过什么?

12、知道SpringCloud吗?知道Docker吗?什么是微服务?

之后就是面试官对他们现在做的项目的各种介绍,然后就是他们缺实施.....

 

C公司——Java开发实习

一面(记不清了,只把记得写下):

1、HashMap取元素的过程

2、数组取元素时为什么可以直接得到元素?

3、ThreadLocal的介绍,在哪使用?

4、数据库的隔离级别,但没有直接问,而是给了两个事务,让说在四个隔离级别下的各自情况

5、在隔离级别下数据库读写哪个加锁

6、网络相关,例如HTTPS是如何实现安全的?

7、Java代码实现开根号的思路,思路说完手写代码

8、项目相关的细节

二面

一面结束后,让我等了将近半个小时后,出来另一个面试官,重点是关于算法的,因为掌握的不好,所以关于问题只写下我记得的几个(不是全部),因为每个面试官问的算法题肯定不一样。

1、大学课程哪门课学的最好(这应该是根据你回答的深问)

2、单链表的反转,空间复杂度O(1)

3、堆排序中堆的实现

4、快速排序,手写

5、如何判断单链表有环?

6、在两个数组中判断重复元素,空间复杂度O(1)

7、使用堆实现队列

8、动态规划

 

D公司——大数据开发实习

先做的笔试,很简单,唯一个难的就是输出和为n的正整数的数组(数组中的元素可以是1~n个),关于笔试题有一个需要写一个你能想到的最复杂的sql语句(尽自己所能,但是必须写出来)

1、ArrayList和LinkedList的比较,谁的效率快(每个方面,插入、删除等)

2、讲讲ConcurrentHashMap,其存元素是如何实现的/

3、谈谈对高并发的了解

1)volatile,关于原理、可见性、原子性、指令重排

2)ThreadLocal,原理、实现

3)线程池,参数的介绍、种类(当说了fork-join时,面试官说还知道fork-join,不错)

4、在单例中使用volatile,目的是什么?

5、动态规划的基本思路

6、除了JDK中的jar包外,还使用哪些jar包?

7、SQL中inner join的作用

8、对于大数据,你对哪块最熟悉?

9、HDFS的写文件过程,是一个DataNode写完就通知Client结束,还是等待所有DataNode写完通知?

10、MapReduce中的Shuffle过程

11、项目的讲解

 

E公司——大数据开发实习

1、String、StringBuffer、StringBuilder的区别,性能比较

2、单链表与双链表之间性能的比较

3、写一条sql语句

name

score

A

90

B

30

C

70

根据上表的数据,通过score列,将name分为低、中、高三个等级

实现:

name

等级

A

B

C

4、Maven的构建过程

5、pom.xml中的标签,是关于依赖的jar包的使用范围,以及该jar包如何确定其可以在编译时被编译进去

6、MapReduce的开发过程(主要是mapper与reducer)

7、Shuffle发生在哪里,具体过程

8、Hive的分桶表,为什么不使用分区而使用分桶?

9、针对简历上的校园经历进行深问

10、项目的介绍

 

三、面试感受(仅供参考)

面试的时候面试官的提问应该是有两个针对点:

一是你的简历

二是他正在使用的,或者他公司关注的技能

 

简历方面:

个人技能一定要考虑清楚才写上去,甚至简历上的所有写上去的,都必须不怕面试官提问,要不你会很尴尬;

对于个人技能方面的把握,不要写太多(除非你真的熟悉很多),尽量将自己最为熟悉的写上,可以写一到两个自己了解的(不要太多)

 

这个因人而异吧,提前考虑一下不至于被问到时太懵,有的公司可能是外放的Java岗,但最后面试结束会问你转不转其它方向

 

把每一次面试当做自己查缺补漏的过程,通过面试,更好地认识到自己。之后一定要针对自己所感兴趣的方向完善自己,另外最好可以有个交流的挚友,人生路途遥远,有几个挚友可以帮助自己走得更好!

 

最后提示,有的公司hr虽然通知你面试通过,让你安心等待offer,但不要停止找工作,因为一是你可能得到多个offer可以选择最好的,二是可能在审批offer的时候,批不下来就把你刷了。

 

 

摘录自《原则》:

...你最好弄明白其他时间、其他地点、其他人身上发生的事,因为如果你不这么做,你就不知道这些事情会不会发生在你身上,而且一旦发生在你身上,你将不知道如何应对...

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值