技术实习面经-bat,去哪,美团

来源:互联网 发布:c语言线程同步的方法 编辑:程序博客网 时间:2024/05/18 01:31

研一下开始找实习,bat,去哪,美团都面了,一共参加了大概二十场面试,电面和现场面试都有,挺有收获的,也更清楚的了解了自己的水平。5月初就全面试结束了,可是面经一直拖着没写,导致我现在对在哪一次面试中被问了哪些问题有些记不清了。
我面的是技术岗位,java语言

阿里

今年过年之前就有同学发了阿里的实习内推信息,放完寒假刚开学,阿里就开始面试了,甚至有的同学在家就接到面试电话了。
一面问的偏重基础知识,没问任何关于项目的问题

  • ArrayList和LinkedList有什么区别
  • HashMap是如何实现的,hash冲突如何处理
  • synchronized关键字怎么用,如何使用多线程,对并行了解多少,object的wait和notify怎么用
  • 数据库的索引的原理是什么,B树、B+树有什么区别,对黑红树有什么了解
  • java的内存回收机制,有哪些算法
  • mysql的存储引擎是什么

一面大概就问了这些问题,关于操作系统,网络,项目的都没问。有些问题是我在回答其他问题的时候提到了什么东西,面试官会在我提到的内容上面继续问。一面大概持续半个小时。

二面的时候感觉难度加大了

  • OOM是怎么回事,如何使堆、栈、方法区,常量池出现OOM
  • 一旦程序出现OOM该如何解决这个问题
  • 有什么工具能跟踪程序的内存使用
  • mysql的存储引擎是什么,隔离级别有哪些
    还问了哪些问题我已经记不清了。一面和二面都问了mysql的存储引擎,这个我印象深刻,一面的时候不会,结果回去看了一下,二面的时候又被问到了。

三面是答的最不好的

  • redis和关系型数据库的区别是什么
  • 对concurrent包下面的类有什么了解,ConcurrentHashMap的实现原理是什么
  • synchronize和java提供的显示的锁有什么区别
  • 如何让一个线程在某个位置停止,等待10个线程的工作全部完成后,该线程在开始工作

印象最深刻的是这几个答的不好的问题,于是三面果然跪了。

内推没过,又投了校招,校招的时候面试的风格跟内推很不一样,不知道是不是因为各个面试官风格不同。
一面

  • 聊项目
  • 画一下java虚拟机的结构
  • 现场写代码,题目比较简单

只记得看见面试完的评级是B+,应该是通过一面的最低评级。
二面

  • 聊项目
  • 写一个循环读出文件所有字节的代码。看似简单,其实有很多需要注意的地方。比如,文件读入流的对象用fis来表示,fis要在finally中关闭;fis要在try之前初始化为null,然后在try中打开,如果出现异常,fis依然为null,因此在finally中关闭它时要先判断不为null;每次读取完成要判断真正读取出的字节数是多少,然后再做处理
  • 介绍一下metaq消息队列,使用的是拉模型还是推模型,在项目里用过这个,可惜没深入看

二面也不好,也跪了。

去哪

去哪面试也挺早的,只有一轮面试,首先聊聊项目,面试官和我讨论了一下项目的细节;为了对java nio的了解,linux下awk,seed命令的使用,还有一点java的基础知识,面试时间不长

百度

百度是电话面试,一共三面,每次都会聊项目,会问到很细节的东西,项目中用到的redis也问了一些

  • redis中rdb和aof两种持久化方式的区别
  • redis的使用上有多了解,实现上有多了解,如键是如何分布,主从同步的方式
  • 一个随机出产生器能产生0和1,但不是等概率的,如何用它实现一个等概率产生0和1的随机数产生器
  • 还用到了一个在线写代码的网站,可惜让我做的是什么题目我忘记了

还有一些问题面其他公司的时候也被问过,这里就不写出来了,也记不太清了。

美团

美团也是三面,每次都要1个多小时,基本是先聊项目,然后问几个问题,然后在线写代码

  • 在一棵二叉查找树中查找一个整数,如果整数存在,返回该数所在结点,否则返回比该整数大的最小结点
  • 给定一个排序的整数数组a,和整数t,在a中寻找元素ai使得ai的绝对值与t的绝对值的差的绝对值最小
    这个题是在面试官的提示下才做出来的,美团的面试官会在你不会或只有一点思路的时候跟你讨论,给出提示,引导完成题目,这点感觉挺好的 。

腾讯

腾讯正常是两轮技术面,一轮hr面,hr面不刷人。我多了一次技术面,因为二面的面试官觉得我不适合他的部门,于是把我推荐给了另一个部门。二面结束觉得自己答的一般,感觉要跪,查询面试结果果然已跪,其实这只是二面的面试官拒了我,然后把我推荐到另一个部门而已,然而我不知道,所以心情很低落。没过几分钟就收到短信约明天的面试,我又查面试状态变为面试中。最终面完的时候才知道是怎么回事。
面试时被问到两道题

  • 写个快排
  • 给定两个二叉树,判断一个二叉树是否是另一个的一部分

总结

这么多次面试,有些问题会被经常问到,所以就没重复写出来。总体来说对自己的面试结果还是满意的,得益于我从上个学期开始刷题,所以现场写代码的题我都基本能做出来;另外找实习的一个多月里我一次游戏都没打,大部分时间都用来看书复习,找面经,准备面试。
稍微总结几点吧

  • 项目很重要,几乎每次面试都会被问到,所以要对自己的项目很熟悉。对一些设计上的考虑,策略的使用等不仅要知其然,重要的是要知其所以然。项目中用到组件之类的最好也能了解其实现。
  • 数据结构、算法这是程序员最基本的功力,没事刷刷题非常有好处
  • 对不会的问题就坦白说不会,这很正常

面经就到这吧,虽然面试结果我满意,但是自己还有很多要改进的地方,比如这个拖延症,该写的面经拖了这么久,导致很多面试中的细节都忘记了。以后要改掉这个毛病,别拖延,要有行动力!

1 0
原创粉丝点击