最近,圈子里的很多小伙伴都在面试,有些小伙伴儿拿到不错的offer,今天给大家推荐的这位小伙伴拿到美团点评的校招offer,他将自己这次面试的经历写下来供大家参考,看看你能回答多少?
不是面试完就立刻记下来的,因为中间有很多面试,所以有些问题忘记了,暂时想起来的就这些。
一面40+分钟
- 自我介绍
- 项目介绍,然后只要你提到的技术和负责的模块,都会深入问问题。
- 1、java的异常分类,哪些可以不捕获(error,RuntimeException,CheckedException)为什么,不捕获会出现什么问题?
- 2、合并两个有序链表
- 3、求一个数的平方根(二分法和牛顿法)
- 4、你们的网站关于高并发做了哪些?
- 5、HashMap的源码,扩容机制。
- 6、java抽象类和接口的区别
- 7、java里所有类的父类,它里面有哪些方法,详细解释一下这些方法。
- 8、Java nio
- TCP握手挥手
- 线程进程
- 几个算法题
二面1小时+
- 自我介绍
根据介绍到的项目中的知识点问,项目中有用到java的哪些内容,项目的模块有哪些,你们的数据库有哪些表 - java多线程你都知道哪些。
- 项目上线了吗,网站的PV(很不好意思的说项目没上线)
- java nio,nio的应用场景,selector监听通道的事件有哪些
- spring事务管理怎么实现,你的项目中是如何使用的
- 事务管理的隔离级别和传播属性
- 知不知道独立事务
- spring的模块有哪些
- 知道哪些注解
- java的内存模型
- jvm了解哪些,还有GC相关
- 有关java虚拟机内存的一些参数,Xss,Xms,Xmx,XX
- StackOverflowError是什么,在什么情况下会出现。
- mysql的索引你知道哪些
- mysql关于多列索引失效的问题
- mysql什么情况下索引会失效,举其他的几个例子
- B树B+树的区别
- 知不知道dubbo
- redis的数据结构知道哪些
- XSS攻击和SQLl注入
- 常见的页面置换算法
- 一串字符串,中间几处有空格,判断是否是回文串
- 用三个词形容你的性格
三面36分钟
- 平时怎么学习技术的?
- 介绍下项目吧
- 项目中遇到的困难,怎么克服的?
- 你说的都是了解新技术这个层面的,在项目中遇到编码上的技术问题,怎么解决的(原话记不清了,应该- 是问调试,找bug,还有团队做项目时怎么合作这类的回答吧)
- 关于搜索你有了解吗?
- mysql里的like和倒排索引,它们有什么区别?
- 你觉得你从项目中学到了什么?(原话记不太清了)
- 我回答了做最近这个项目时,更注重去理解框架的设计理念和它们的底层实现原理了,然后他说那就是去看了源码了,我回答嗯,他就问说下你看过哪些源码?
- 为什么不考研?
- 对以后的工作规划是什么?
- 什么时间可以来实习?
- 你有什么问题要问吗?
三面一共面了36分钟好像。。我也不清楚为什么没深入的问基础知识,看别人的面经三面都有深入问基础知识,可能一二面已经问过的原因吧。
一些建议
- 面试过美团、华为、ZenJoy和多益网络,基本都是自我介绍之后接着介绍项目,然后根据你的介绍问项目的问题,只要你提到的知识点,都会详细问你,然后还问一些类似于“团队如何合作的、遇到哪些项目难点、怎么解决、学到什么”这些问题。所以要对你简历上写项目很熟悉。
- 之后会问一些基础知识,这里说一句,自我介绍的时候介绍自己熟悉哪些方面(比如说熟悉java还是C++,mysql还是别的,还有熟悉哪些框架等等,之后基础知识可能就根据你的自我介绍来问了)。
- 还有就是要真诚,面试过程中不要尝试欺骗面试官,有什么就说什么,不太熟悉的东西说出自己了解的就好,不会的就直接说不会就好了,可以稍微包装自己,但不要包装过分玩脱了。。
- 牛客网上有很多校招面经,今年的和往年的都有很多,面经里不会的问题就去学。比如你面A公司之前,去牛客搜索A公司的面经,可能会碰到原题这种的,会有些帮助。
读者福利
欢迎工作一到五年的Java工程师朋友们加入Java架构开发:863545238
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
网友评论