前言

先说一下我的情况,双非本科毕业后就在几家小公司工作了3年,5月份的时候有去大厂面试过,结果都是凉凉,下面会跟大家分享一下我的经验以及建议。

有的朋友可能会认为学历是自己的问题,面试官连简历都不会看。其实,像阿里现在也是有大专学历的,当然他们也是非常优秀的。如果你学历不够,可以用技术来顶(对于程序员而言,关键还是看技术)

有的朋友可能也有这种情况,觉得自己技术不错,学历也是本科(或许只是个一般的本科)但人家还是不会看自己的简历。那么我认为你应该思考一下是不是因为简历包装的原因,或者说只是你以为你能达到大厂的要求,结果稍微往深了一点你就紧张.....

话不多说,接下来我跟大家分享一波我的面试经验以及我个人的建议吧!(另:复盘后整理的资料在文末,需要的朋友请阅读至文末获取!)

 

如何获取大厂面试机会

首先,大厂招聘基本上在春秋两个季节,也就是我们说的春招和秋招,大概时间也就是我们所说的金三银四和金九银十。

其次,想要获取大厂面试可以有以下几种选择机会:

  • 关注大厂官网,随时投递简历(例如阿里:https://job.alibaba.com/zhaopin/)
  • 对于校招来说,学校会有举办宣讲会,直接投递简历
  • 渠道内推(避开网申以及笔试的筛选,前提是简历够出色)
  • 求职网站投递简历
  • 博客被看重或者在GitHub上优秀开源项目贡献者,大厂内部人员邀请面试
  • 亲朋关系(关系户)

搞清楚面试方向(可能会问的问题)

你准备面试的话肯定要搞清楚技术面可能会被问到那些问题的方向吧!下面我用一张简单的思维导图稍微介绍一下,导图里面涵盖的是可能会问的一些技术点,但是你不需要把每一个都搞的很熟悉,一定要根据自己的实际情况进行扬长避短,做到主次分明!

 

至于简历的包装,这个还是需要根据你个人的情况来写,做到扬长避短,主次分明,对于项目经历可以从下面几点来考虑:

  • 对项目整体设计的一个感受
  • 在项目中你负责什么?做了什么?担任什么角色?结果?
  • 从这个项目中你学会了什么?使用了哪些技术?学会了什么新技术?
  • 另外项目描述中,最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能比如:用redis做缓存提高访问速度和并发量、使用消息队列削峰和降流等等。

阿里凉经

一面:

  • 先介绍一下自己吧
  • 说一下自己的优缺点
  • 具体讲一下之前做过的项目
  • 你觉得项目里对你最大的挑战是什么?
  • Hashmap为什么不用平衡树?
  • AQS知道吗?知道哪一些呢?讲一讲。
  • CLH同步队列是怎么实现非公平和公平的?
  • ReetrantLock和synchronized的区别
  • 讲一下JVM的内存结构
  • JVM里new对象时,堆会发生抢占吗?你是怎么去设计JVM的堆的线程安全的?
  • 讲一下redis的数据结构
  • redis缓存同步问题
  • 讲一讲MySQL的索引结构
  • 你有什么问题要问我吗?

二面:

  • 根据项目问了一些细节问题
  • 说一下HashMap的数据结构
  • 红黑树和AVL树有什么区别?
  • 如何才能得到一个线程安全的HashMap?
  • 讲一下JVM常用垃圾回收器
  • redis分布式锁
  • 再描述一下你之前的项目吧
  • 你觉得这个项目的亮点在哪里呢?
  • 你设计的数据库遵循的范式?
  • 你有没有什么问题?

 

三面:

  • 又聊项目
  • 在项目中,并发量大的情况下,如何才能够保证数据的一致性?
  • elasticsearch为什么检索快,它的底层数据结构是怎么样的?
  • JVM内存模型
  • netty应用在哪些中间件和框架中呢?
  • 线程池的参数
  • 讲一下B树和B+树的区别
  • 为什么要用redis做缓存?
  • 了解Springboot吗?那讲一下Springboot的启动流程吧
  • 如何解决bean的循环依赖问题?
  • Java有哪些队列?
  • 讲一讲Spring和Springboot的区别
  • 最近看了什么书?为什么?
  • 你平时是怎么学习Java的呢?

美团(offer)

一面:

  • 自我介绍
  • 项目介绍
  • Redis介绍
  • 了解redis源码吗?
  • 了解redis集群吗?
  • Hashmap的原理,增删的情况后端数据结构如何位移
  • hashmap容量为什么是2的幂次
  • hashset的源码
  • object类你知道的方法
  • hashcode和equals
  • 你重写过hashcode和equals么,要注意什么
  • 假设现在一个学生类,有学号和姓名,我现在hashcode方法重写的时候,只将学号参与计算,会出现什么情况?
  • 往set里面put一个学生对象,然后将这个学生对象的学号改了,再put进去,可以放进set么?并讲出为什么
  • Redis的持久化?有哪些方式,原理是什么?
  • 讲一下稳定的排序算法和不稳定的排序算法
  • 讲一下快速排序的思想

二面:

  • 自我介绍
  • 讲一下数据的acid
  • 什么是一致性
  • 什么是隔离性
  • Mysql的隔离级别
  • 每个隔离级别是如何解决
  • Mysql要加上nextkey锁,语句该怎么写
  • Java的内存模型,垃圾回收
  • 线程池的参数
  • 每个参数解释一遍
  • 然后面试官设置了每个参数,给了是个线程,让描述出完整的线程池执行的流程
  • Nio和IO有什么区别
  • Nio和aio的区别
  • Spring的aop怎么实现
  • Spring的aop有哪些实现方式
  • 动态代理的实现方式和区别
  • Linux了解么
  • 怎么查看系统负载
  • Cpu load的参数如果为4,描述一下现在系统处于什么情况
  • Linux,查找磁盘上最大的文件的命令
  • Linux,如何查看系统日志文件
  • 手撕算法:leeetcode原题 22,Generate Parentheses,给定 n 对括号,请写一个函数以将其生成新的括号组合,并返回所有组合结果。

三面:

  • 自我介绍
  • 项目介绍
  • 怎么管理项目成员
  • 当意见不一致时,如何沟通并说服开发成员,并举个例子
  • 怎么保证项目的进度
  • 数据库的索引原理
  • 非聚簇索引和聚簇索引
  • 索引的使用注意事项
  • 联合索引
  • 从底层解释最左匹配原则
  • Mysql对联合索引有优化么?会自动调整顺序么?哪个版本开始优化?
  • Redis的应用
  • Redis的持久化的方式和原理
  • 技术选型,一个新技术和一个稳定的旧技术,你会怎么选择,选择的考虑有哪些
  • 说你印象最深的美团点评技术团队的三篇博客
  • 最近在学什么新技术
  • 你是怎么去接触一门新技术的
  • 会看哪些书
  • 怎么选择要看的书

总结

如何利用1个月的时间从一家中小型公司跳槽到美团的?其实说不难也难,说难它还是不容易,平时加班就很多了,没有太多时间学习,但是不去学习的话自己这样子迟早可能会被裁掉。需要每天抽出一点时间来学习,把Java的一些核心的东西给吃透,把基础给打好,剩下的其实不太难了。

我是如何做到的?其实我身边也有几个大牛,有时候也会向他们请教一下问题,他们也把个人整理的一些学习笔记分享给了我,同时,他们都有一个很好的习惯,做面试复盘,这个真的很重要,因为你可以从你每次面试中知道你还缺乏什么?为什么你进不了大厂?这些笔记资料也当作福利分享给大家吧,需要的朋友点击传送门 即可!!

Java程序员(适合初中高级)学习笔记:

 

近2000道面试真题总结:

 

666页算法笔记:

 

别忘了,点击传送门 即可获取到整个Java进阶体系学习笔记