Java大厂面试总结(包含面试题)
Posted LuckyWangxs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java大厂面试总结(包含面试题)相关的知识,希望对你有一定的参考价值。
我是一名20年毕业生,至今毕业已经一年出头,算上实习经历,也只有一年半的工作经验,而且我并没有选择在金九银十的时候去找工作,机会不是很多,加上资历尚浅,找工作其实还蛮难的。我从今年11月1开始看机会,一直到今天,手里也拿了不少offer,但并没有收获大厂,很遗憾。今天这篇文章也说下最近面试的一些问题吧,大家可以提前做准备(最后会凭记忆奉上面试题)
1. 简历问题
- 简历不需要追求完美,你需要考量的是,你写的简历是否跟你当前阶段的资历与能力所匹配,即使你什么都会,也不要什么都往上写,我的前领导告诉我,你什么都写会激起面试官的斗志,然后使劲问你哈哈哈。。。
因为你的简历写的太好,可能会导致用人单位不相信,认为你在吹牛,反而更容易导致简历筛选不通过,我就犯了这个错,猎头说我的简历写的跟干了5年一样… - 不要什么技能都往简历上写,要体现自己最擅长的一部分。你简历上的每一个点,都是面试官可能会问到的,你写上去就是想给自己加分,那么,一旦面试官问了你没答上来,不会假分反而减分。
- 项目经验。你做的项目要突出亮点,能给面试官讲出来,并且要说出难点以及如何解决难点的,如果不是你做的,但你非常清楚来龙去脉,难点与如何解决的你都很清楚,那也可以写,但你只是大概知道这个模块的功能和一些技术点的话,还是不建议写到简历上的,你不知道面试官会围绕你的项目给你提出什么样的问题,所以说要慎重!
以上问题,我可能都犯过。在面58的时候,我被虐的遍体鳞伤,当然也是因为简历内推投错了,内推了个高级开发工程师,很难,开局直奔项目架构,把项目用到的技术底层问了个遍,然而项目用到的一些框架、中间件我只是会用,也许是高级开发才会这么问吧…我也不知道,我面其他公司都是围绕我的技术栈问的。。
2. 刷题
如果你想去大公司,刷题是必不可少的,大厂必问算法,所以说你基础算法必须会!我面的大厂虽然不多,但每次都会问,一面问的也不难,基本都是中等的简单的困难的给你搭配,基本最多只有一个困难的,如果一面的话,可能只会让你做一道算法题,也比较简单,往后难度会加大,但也都是基础算法,去leetcode刷题就可以了,高效且重复地刷题
3. 面试过程方面
实际上,去大厂通不过的原因,技术往往不是最致命的,而是你不知道面试官想听到什么,我有去面过阿里,一面很好,问我的都是我擅长的,我说了很多,两个知识点说了半个多小时,算法三道也做了两道,感觉没什么问题,整个过程很顺利,但最终并没有通过一面,给到我的反馈是,叙述追求全,但没有重点,什么意思呢?其实就是对于他们而言,你说的这些东西,在网上看看帖子,买本书看看,普通人花点时间都能学会,你在这叭啦叭啦说半天,也突出不了你的亮点,你没说出我想听到的,这句话是关键,所以最致命的是你不能说出面试官想听到的!所以对于面试官的一个问题,你可以追求全面,但也要突出重点,然后把你的重点往深了剖析!比如面试问的我线程池,我就开始一通说参数、原理、拒绝策略、Executors提供的三个线程池的特性等等,只顾追求叙述全面的知识,却忘了抓住一个重点去深度剖析…
我也面过很多小的互联网公司,有好几次问JVM的,我也是能说十几分钟二十分钟,这种小公司,当场就会给面试通过,但是大公司不一样,技术大牛考虑的点不同,只能说要求更高。
阿里一面(1小时10分钟)
- 自我介绍
- 说说JVM内存模型和内存结构吧
- 有用到过线程池吗?可以说说吗?
- 了解synchornized的锁升级过程吗?
- LRU算法、动态规划
这几个问题度很熟,面试也很顺利,可惜没通过
58一面
- 自我介绍
- 说一说你最拿手的一个项目吧?
- 我看你们用了Elasticjob和Xxljob,那他们有什么区别,为什么Elasticjob不能像Xxljob那样?(这句话有点并不太明白想问什么)
- 如果保证消息不丢失的?
- 分布式事务了解吗?
- RocketMQ与RabbitMQ的最主要区别,你们为什么用RocketMQ?RocketMQ底层可以说说吗?
- Spring是如何解决循环依赖的
- 知道Redis的String类型底层是怎么实现的吗?
- 知道Redis的ZSet做并集的时间复杂度吗?
- MVCC有了解吗?假设一个事务中出现幻读以后进行回滚,你能说说这个事务都发生了什么吗?
- 判断循环链表
好像还有一些分布式锁的实现,zk的底层等等吧,记不太清了,注重底层原理
滴滴一面(40分钟)
- 自我介绍
- Spring中是通过哪些关键接口与MyBatis整合的
- 说一说synchornized的实现吧
- 有没有实际的SQL优化,可以说说吗?
- 能说一说Redis的缓存穿透、击穿、雪崩吗?
- CMS垃圾回收器的工作流程
没有算法题,说是基础挺好,就到这吧
滴滴二面(50分钟) - 自我介绍
- 说下拿手项目
- 为什么用RocketMQ而不用RabbitMQ,考虑的点是什么?
- 如何保证消息不丢失的?
- SQL优化
- 你们如何分表的?有没有出现跨库查询数据的问题?
- 假设滴滴现在有个出行订单表,让你设计分库分表,你怎么设计?
- 一个0-n的数组中间少一个数,如何找到少的那个数?
滴滴三面(30分钟) - 自我介绍
- 介绍项目整体架构,都有什么服务,每个服务做什么的,为什么这么划分?
- 如何保证消息不丢失?
- 你们是用定时任务做异步通知的,如果定时任务挂了怎么办?有没有什么好的解决方案?
- 你们是如何做幂等的?
- Redis的String和hash,用哪种做对象缓存比较好,为什么?
三面感觉很草率就结束了,半小时…不知道咋样也,目前还没结果,好了,兄弟们,加油!
以上是关于Java大厂面试总结(包含面试题)的主要内容,如果未能解决你的问题,请参考以下文章
BAT大厂Java面试,如何抓住面试重点知识?收割大厂offer