前言
我是18届毕业的,普通本科,软件工程专业。刚毕业时我意气风发,觉得进大厂挺容易的,但是现实却给我狠狠来了一击。
校招面了各种大厂,不是一面挂就是二面挂,连三面是什么样子都没见过,说实话,当时被打击的不轻,但是没办法,生活还得继续。
认知到自己的能力只是个菜鸡,又迫于生存,最终去了一家三线厂做后端开发的工作。

正文
这次之所以想出来面试,一共有两个原因:其一是,心里一直有个大厂的梦,想进大厂看看。其二是,自己想回南方发展了。还有就是顺便看看自己水平到底如何了。
所以在今年2月份开始,我就以及开始复习面试的相关知识了,并着手准备相关材料。
- 面试准备
根据简历上的内容,尝试着自己对自己模拟面试,从基础开始,由浅入深,同一个知识点换不同的角度、逐渐深入,先问出自己能问的所有问题再尝试着解答,看看自己能够达到什么程度,对自己有一个明确的了解……
- 向大厂投递简历
到这里我是非常的慌的,我不认为自己还能进大厂,不过还是按照她的建议向阿里、字节等大厂投递了简历,没想到短短几天收到了几个大厂的面试邀请,突然对自己有点自信了!
- 大厂面试
大厂的面试问得真的很深,还要前面有所准备,一面的时候还有些紧张,后面就慢慢自信起来了,哪怕是和HR聊薪资也敢往上要了,最蚂蚁、腾讯、百度都通过面试拿到了offer,抖音二面挂了,滴滴HR面拒了。
面试经历
蚂蚁(三面)Zookeeper+微服务+消息中间件+高并发架构设计
一面
-
JVM数据存储模型,新生代、年老代的构造?
-
java GC算法,什么时候会触发minor gc,什么时候会触发full gc?
-
GC 可达性分析中哪些算是GC ROOT?
-
你熟悉的JVM调优参数,使用过哪些调优工具?
-
Java 有什么锁类型?
-
描述下线程池的处理流程?
-
类加载机制,一个类加载到虚拟机中一共有几个步骤,这些步骤的顺序哪些是固定的,哪些是不固定的,为什么不固定
-
hashmap是线程不安全的,concurrenthashmap是线程安全的,怎么实现的线程安全?
-
volatile关键字解决了什么问题,实现原理是什么
-
并发容器有哪些,并发容器和同步容器的区别
二面
-
在工作中,SQL语句的优化和注意的事项
-
哪些库或者框架用到NIO
-
Spring 都有哪几种注入方式,什么情况下用哪种,ioc实现原理
-
如何定位一个慢查询,一个服务有多条SQL你怎么快速定位
-
聚集索引和非聚集索引知道吗?什么情况用聚集索引什么情况用非聚集索引
-
Nosql引擎用的什么存储结构,关系型数据库和NoSQL各自的优劣点是什么,如何技术选型?
-
微服务架构下,如果有一个订单系统,一个库存系统,怎么保证事务?
-
分布式一致性协议raft,paxos 了解吗
-
Zookeeper中的ZAB协议,选主算法
三面
-
自我介绍
-
参与的并发项目,从设计到部署,按照流程讲一遍。
-
项目相关你用过redis,用在什么场景,怎么使用的?
-
mysql同步机制原理,有哪几种同步方法
-
数据库主从同步如何实现,事务如何实现
-
谈谈你对SOA和微服务的理解,以及分布式架构从应用层面涉及到的调整和挑战。
-
阿里系中间件metaQ及原理与现有的kafka有什么异同
-
在阿里有了解过什么中间件吗?实现原理?与其他开源消息队列有什么特点?
-
为什么选择换公司?
-
三年到五年的职业规划?
-
你有想问我的?
腾讯(三面)
一面
- 项目讲了20分钟,问你做了什么,项目细节、你的成长之类的
- Java锁 synchronized volatile
- 快排如何变为稳定的
- 排行榜如何实现
- 如何查排行榜第2000个人的信息
- java游戏服务器 如何通信
- 算法coding,反转链表
腾讯二面
- 工厂模式 场景
- hashmap treemap
- 数据库索引 不用二叉树原因是因为 二叉树可能会变为O(n)
- 数据库如何加快 查询 :cache 索引 ,分表分库,
- 网络粘包
- 网络两次握手不可以?
- Kafka水位(high watermark)
- ArrayList 和 LinkedList 遍历操作效率比较?ArrayList更快 操作系统预读
腾讯三面
-
算法:带父节点的二叉树 中序遍历查找的上一个节点?
zookeeper如何体现AP
百度
一面
【Spring】
-
Spring的项目介绍一下
-
加载扫描bean的流程
-
Spring生命周期
-
Spring的Bean的作用域
-
MVC流程,@RequestMapping注解具体怎么实现的?
-
@Transaction注解实现知道吗,具体怎么实现的?
-
Spring的事务了解吗?
-
Spring的事务传播,事务隔离级别
-
Spring的IOC,AOP的思想讲一下
-
Spring的bean依赖注入有哪几种方式?
-
能说一下Java的反射机制吗?
-
SpringBoot用过吗?
【MySQL】
-
MySQL四种隔离级别
-
MySQL ACID说一下,AD实现
-
MySQL InnoDB索引结构
-
能说一下InnoDB和MyISAM他们的区别吗?
-
能说一下表锁,行锁吗?
【Redis】
- redis分布式锁了解吗
二面
【算法】
- 二叉树的右视图
【项目】
-
博客有什么难点?数据库表设计,redis缓存,索引设计。
-
博客项目的点赞功能怎么实现?
-
如果两个人同时在使用admin修改一篇博客,前一个人的修改被后一个人的覆盖了怎么办?如果很多人修改如何保证提高并发性能呢?
-
如果要调整博客的排列顺序,比如最后一个博客,排到第三个,你会怎么实现?
-
为什么要在博客里使用redis呢。
【redis】
-
redis有哪些数据结构,你用过哪些?
-
redis如何保证高可用,redis分布式锁,延申mysql分布式锁,zookeeper分布式锁。你可以比较一下他们吗?
-
redis持久化?rdb,aof
-
redis主从架构master和slave如何同步数据。
【数据库】
三面
-
说一下你加入的本科生团队?
-
加入团队后你有哪些收获呢?
-
你觉得在大学你有哪些提高?
-
说一件你最遗憾的事情?
-
说一件你努力过然后放弃的事情?
-
你是怎么去管理团队呢,为团队的一些事宜写过相关的文档吗?
-
你最不能容忍的团队中发生的事情?
-
领导,老师让你做一件事,但你觉得没有意义,不想做,怎么办?
-
你说渴望实战,不想读研学习概念性课程了,你觉得概念性的课程没有用吗?
如何准备面试
简历的准备
由于平时自己也负责组内进行一些面试工作,作为面试官来说,简历真的很重要!!它是面试官对你的第一印象,所以简历的排版以及内容质量很关键。
关于简历的排版,我总结起来以下几点:
1.简历的格式一定要用 PDF !!;
2.个人信息、联系方式尽量的放在前面,简历排版需紧凑,不要太松散;
3.对于一些技术栈、关键词需加粗强调;
4.简历整体内容尽量控制在两页以内,语句需精简,切勿啰嗦;
简历模板获取点击此处传送门

主要复习点
Java核心知识点整理









最后
面试其实是一个自检、自省的过程,期间会发现自己的优点和不足。这次面试经历暴露了自己在算法及专项领域技术思考的欠缺...所以今后还要加强这方向的学习和巩固,但同时拿到了三家"大厂"的 offer,也是对自己过去两年的工作的一个肯定,说明我是一名合格的螺丝钉哈哈。
同时,面试的整个过程是很心累的,在这短短的一个月里,你会经历极度自信和极度失落的跨越,期间需要调整好自己的心态,面试没通过并不是你被全盘否认了,有可能是你的工作经历并不是很契合他的职位需求,所以还是要保持信心和斗志。
祝愿大家都可以拿到自己心仪的offer呀。