5年前,BAT冲到了风口浪尖,美国上市的阿里成为中国体量最大的互联网公司,腾讯借助微信成为移动互联网的霸主,外企开始撤离中国,国企的光环也慢慢褪去。
到了近年,应届毕业生心中最炙手可热的公司换成了TMD及各路独角兽公司,这些公司代表着科技最前沿,能够许诺高薪和美好前景。
在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。
但说实话,想进大厂还真没那么容易。
朋友在入职字节跳动之前,大大小小的面试经历了十几次,最后终于在 4 轮技术面+1 轮 HR 面之后成功接到 Offer,40k*16 薪!
第一轮主要考察 Java 基础
hashmap的实现
Java中的垃圾回收
除了代码之外你还学习了什么技术,框架
死锁是怎么产生的
线程和进程的区别
第二、三轮注重对应技术的掌握:
MySQL的索引,B+树性质
Redis的持久化方式
TCP四次挥手讲一下过程,最后一次ack如果客户端没收到怎么办
对于socket编程,accept方法是干什么的,在三次握手中属于第几次
第四面则是关于参与过的项目和在对业务的理解
历经4面,“跳进”字节跳动
字节跳动一面:
自我介绍
tcp和udp区别,应用场景
tcp三次握手,为什么有第三次?
讲一下get和post区别,其他命令
讲一下进程和线程区别,什么时候用多线程?怎么保证线程安全?
synchronized的使用,是对什么加锁?
栈和队列,怎么用栈实现队列?
垃圾回收算法,复制算法中存活对象太多怎么办?
可达性分析,GC Root可以是哪些对象?
hashmap底层实现,put get过程,扩容,为什么容量为2的倍数?
java基本类型,基本类型间的转换(short+int得到int类型,不能直接把int型赋给short型)
String类,字符串相加+的底层操作,StringBuilder和StringBuffer
算法:给一个数组,使数组奇数在前半段,偶数在后半段,在原数组上操作。
字节跳动二面:
多个项目的技术架构,不是业务架构 MySQL,Redis,Nginx,Kafka这些技术架构
项目技术点,学到了哪些?也要具体知识点。
MySQL中为什么是最左前缀?
有没有接触过一些自动熔断工具
502可能的原因有哪些?
线上问题怎么排查?Full GC 频繁怎么办?
服务的QPS,数据库的架构和版本。
SpringBoot的优缺点分析
SpringBoot的启动源码分析
服务的部署方式?
算法题目:按照之字形分层遍历二叉树,要求bug free,并且构造二叉树进行测试。
字节跳动三面:
jdk8默认的垃圾回收器, 知道哪些垃圾回收器? G1详细说一下
synchronized关键字的底层是什么?
线程之间哪些资源是共享的? 什么是独享的?
堆和栈有什么区别?
linux查看资源的命令?怎么样查看哪些端口被占用了
linux内存中swap是什么? 什么用?
用户态和内核态的区别? 为什么要有用户态内核态区别?
中断有哪些类型,区别?
死锁概念?条件?
算法题:奇数位递增偶数位递减的数组,排序
get,post区别?
get可以缓存?在INTP(?没听懂在哪)里是怎么实现的?
写sql,group by的查询?
mySQL的搜索引擎?innodb和myISAM的区别
HRBP面:
自我介绍
为什么在看机会呢?在看什么类型的机会呢?
为什么看头条的机会?
你觉得头条是一家什么样的公司?
朋友同事如何评价你?
平时都有哪些兴趣爱好呢?
在原公司最享受的阶段是什么时候?为什么
你对我们的业务方向了解吗?
你对我们的业务方向和技术感兴趣吗?
每轮面试大概一个小时左右,面试官从技术和项目两个角度考察得非常详细。
后来 HR 反馈给他的信息是:技术扎实,参与过热门项目,与岗位要求匹配度较高。
朋友的例子表明:技术能力+项目经验是大厂面试的重点,只要这两点过关,面试正常发挥,拿到梦寐以求的 Offer 并不难!