虽然秋招时间一般定在9月-11月,但大部分人在10月中下旬就结束了自己的秋招,而我也不例外。今年秋招收获颇丰,在意料之中也在意料之外,总共拿下了4个offer,分别是腾讯、网易、华为、顺丰。特分享一下这次面试的一些真题,希望对一些还在秋招前线奋战的朋友有所帮助!
需要的朋友:直接点击文档窗口(https://jq.qq.com/?_wv=1027&k=gLUIIwrn)免费领取
腾讯OMG部门(3面技术+HR面)
附上我的录用意向书吧
腾讯OMG部门一面(用时36分钟):面试官比较年轻,应该从业年龄不长,说话也比较慢,看得出是一个比较内向的人
自我介绍一下自己
讲一下实习项目(实习项目着重讲了自己做的一些贡献,然后面试官根据我的实习项目提了几个问题,自认为答得比较满意,从表情上看)
数据库相关(数据库优化、数据库分表的操作、索引有哪些、索引底层的实现等)
网络(协议,三次握手、为什么三次握手,客户端发送到服务器端经过的网络层次和步骤等)
redis(简历上有些,就要我先自己说说知道的redis哪些知识,然后问了一个分布式锁)
你会C++么?有了解什么新技术吗?
讲一下HashMap 底层的实现
HashMap 扩容的机制和扩容的时候的里面元素的位置是否会改变。
HashMap 的 hashCode 为什么要再 hash,你来设计一个 hash 算法。
ConcurrentHashMap 怎么实现并发。
ConcurrentHashMap 加锁机制。
直接说我答得不错,准备一下二面
腾讯OMG部门二面(用时48分钟):面试官有些严肃,也不笑,所以进去有些紧张,后来前面问的几个问题答得比较顺利,才慢慢放松下来
开局照常自我介绍
问一个之前实习的项目,然后具体聊了一会,大概10分钟左右的样子
单服务如何处理高并发?
Mybatis自动识别功能
如果让你自己实现一个crane,你会怎么做?
分布式crane怎么实现?
MQ底层实现原理
JAVA面向对象特性有哪些?
讲一讲JVM回收机制
如何确认一个对象是否应该回收?
讲一下JAVA的四种引用方式
对网络连接中的IO了解多少?说一下
讲一下分代回收特点
问了一些JAVA锁的问题
腾讯OMG部门三面(30分钟):有一点年纪了,头发秃得差不多,感觉是个大神,估计是技术总监之类的,说话还挺和蔼的
说一下你自己未来的规划
问了一下项目情况,项目整体架构,针对性的提问 大概7分钟左右
用过python和go么?(没有)
Java内存模型
Java并发,怎么实现多线程?
多线程并发问题,怎么解决?
Java并发控制,锁机制,怎么实现的?
说一下乐观锁
Mybatis和Hibenate的区别,为什么用Mybatis
Mysql的并发量?锁是怎么加的?
RabbitMQ怎么用的
最近在看什么书
除了腾讯还投了其他的公司吗?
你有什么想问的?
腾讯HR面(非常快,感觉只有20分钟左右)
自我介绍
介绍一下实习经历
实习中遇到的困难以及如何解决这些困难
为什么不考研?
职业规划
投了哪些公司?
为什么没有投阿里?
有什么想问的?
网易互娱服务端研发(2面技术+HR面)
网易互娱一面(一进去有2个面试官,就开始有些紧张,后来都是一个面试官在问,另一个面试官对着我微笑,瞬间就放松下来)
简单的自我介绍
之前的实习项目
为什么没有留在实习公司?
对Java的Map了解吗?(请说出其中的几个接口,怎么获取key,怎么判断是否包含key,哪些实现了Map接口,map的hash以及数据结构,1.7和1.8的区别等等)
写一个栈的实现,用数组,确保最大队列长度为k
怎么确保当所有线程执行到某个点等待,直到所有线程都执行到时一起往下执行
cyclicbarrier和countdownlatch有什么区别,以及应用场景。
怎么查看是哪一条SQL执行慢?
数据库的四种隔离级别,怎么避免脏读?
讲一下hashmap和currenthashmap的数据结构
还有什么我没有问到的吗?
网易互娱二面(大概45分钟)
简单地介绍一下自己
说说你的项目吧
看到你项目里用线程池做机器学习训练,线程池是怎么用的?
CAS和ABA问题
线程池中corePoolSize,maxPoolSize,如果当前线程数还没到maxPoolSize,队列里会排队等待吗?
怎么实现线程安全?
HashMap是非线程安全的,你怎么把它变成线程安全的?
Tomcat是类加载实现结构,它有哪些实现类加载器?
Hibernate底层是怎样实现ORM映射的?
缓存队列,有用过吗?
分布式了解过吗?两阶段提交,CAP理论会吗?
你有想问的吗?
网易互娱HR面(是一个很漂亮的小姐姐,感觉猪厂的颜值都好高啊)
介绍下自己
说一下你自己的性格
同学和同事对你的评价
为什么不读研?你有女朋友吗,你目前面过哪些公司?
期望的薪资
你期望工作的城市
你有什么问题要问我的?
华为消费者BG(3面+HR面)
华为消费者BG一面(问的一些基础问题,面试官说话很温柔,自己答得也很顺利)
介绍一下你的实习项目吧(没有问什么问题,感觉直接略过了)
给一个二叉树,调整成AVL树,说明过程
讲一下多态的实现方式
讲一讲Java反射机制
板编程和重载的区别适应场景
多线程编程使用到的的一些接口函数
讲一下多线程避免死锁的方式
讲讲Linux系统的内存管理方式
算法:一组数,返回最长的和为target的子序列
华为消费BG二面(感觉是个架构师,不过不严肃,进去就跟我握手,给人的感觉很好)
先自我介绍一下吧
说一下项目
根据项目开始提一些问题(有多少张表,表间关系,为什么这么设计,遇到了哪些问题,怎么解决这个问题的,你做出了哪些贡献等等)
索引
说下Mysql的两个引擎
讲一下索引的优势和劣势
为什么选择b类树做索引
m阶b+树做索引 m取0和无限有什么区别?
索引在什么情况效率最高?
撕代码,10进制转n进制(讲一下思路)
华为消费BG三面
讲一下实习经历吧,主要说一下实习期间都做了什么?
fragment了解吗?说一下
并发了解吗,Java常用的线程操作类有哪些?
如果我想让五个线程同时执行结束完再执行主线程,该怎么做?
手写一个线程池
讲讲线程池参数
了解动态代理吗,讲讲
动态代理主要的作用是什么?
了解注解吗,怎么用注解?注解的原理是什么?
数据库都用过哪些?
我来问问传统的MySQL,讲讲数据库都有哪些索引,各有什么用?
一般什么情况下会使用索引?
什么情况下索引会失效?
数据库怎么调优?
你还有什么觉得自己比较擅长的方面,可以给我讲讲吗?
你了解锁优化吗?
华为HR面(电话面,问了几个常规题)
大概是个人职业规划、薪资、未来方向等
顺丰科技(2面+HR面)
顺丰科技一面(面得很快,感觉面试官很赶时间)
自我介绍
项目介绍
JVM 的GC说一下
c=a+b ,JVM可以执行多少次?
讲一讲HashMap底层实现
动态规划的思想
深度优先检索。
TCP的四次挥手
项目中RabbitMQ的作用,怎么实现的?
kafka了解吗?讲一下
顺丰科技二面
大量int数据,值为1~10000,排序并去重,讲思路(桶排序),能不能用Java自带的方法实现?(TreeSet)
实现LRU,并增加过期功能,类似Redis里过期键的删除(讲了思路,在纸上画示意图,没写代码)
熟悉哪些设计模式
set和list
说一说NullPointerException如何发生,我举的一个例子我说的如果一个对象本身为null,调用该对象的方法会报出空指针异常
java异常类型
Spring相关问题,一个类中有三个方法A()、B()、C(),都配置好了事务并且传播方式没设置错,执行{A();B();this.C()},为什么回滚后结果有问题?
讲一下Spring AOP的两种实现方式
redis事务与mysql事务有什么区别?
了解哪些排序,各个时间复杂度,说一下快排和归并排序具体做法
顺丰科技HR面
介绍一下自己的实习项目,用我听的懂的语言
那你觉得自己从中学到了什么呢?
讲一下自己的优点
讲讲你的职业规划
投了哪些公司?拿到几个offer了?
你怎么看待互联网公司996的问题?
说一下你的薪资要求吧
你还有什么想了解的吗?
总结
最后,给面试题做一下总结,大部分互联网公司在招聘技术岗位时,问出的面试题都是注重基础与深度的,所谓的基础也就是一些常问的知识点,这考的是面试者对基础知识的一个掌握程度,如果基础知识都掌握不够,那么再优秀都是空谈。另外,深度层面也很重要,所谓的深度就是在工作中遇到的问题,不要把问题停留在解决的层面,还应该考虑到问题的背后,比如原理、预防、解决办法等等,这两点都能够做到,基本上面试顺利,没啥问题。
为应对一线大厂面试,我做了哪些准备?
(一)调整自己的心态,正确面对得失
面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。
(二)提升技术,扩宽知识
对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?
以下是我个人的一些做法,希望可以给各位提供一些帮助:
- 21天啃完283页的pdf文档
**Java部分:**Java基础,集合,并发,多线程,JVM,设计模式
**数据结构算法:**Java算法,数据结构
**开源框架部分:**Spring,MyBatis,MVC,netty,tomcat
**分布式部分:**架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
**微服务部分:**SpringBoot,SpringCloud,Dubbo,Docker
- 实战系列:Spring全家桶+Redis等
- 其他相关的电子书:源码+调优
(三)刷题
如何刷题?这是很多现在面试者心中的困惑,我们都知道,面试前刷题是很有必要的,毕竟很多题目都有一定的共性,刷足够题目就能够做到举一反三,甚至在面试时,被问到原题,能够侃侃而谈,那么刷题如何进行呢?建议:最好找一些历年的面试原题,分专题来对自己进行训练。
以下是我私藏的面试题库:
结束语
对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。
以上内容中所有的学习资料、面试资料,均可以免费提供,希望大家金三银四面试顺利,拿下自己心仪的offer!
需要的朋友:直接点击文档窗口(https://jq.qq.com/?_wv=1027&k=gLUIIwrn)免费领取~
欢迎关注专栏:Java架构进阶团。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。