Java大厂面试总结(包含面试题)

我是一名20年毕业生,至今毕业已经一年出头,算上实习经历,也只有一年半的工作经验,而且我并没有选择在金九银十的时候去找工作,机会不是很多,加上资历尚浅,找工作其实还蛮难的。我从今年11月1开始看机会,一直到今天,手里也拿了不少offer,但并没有收获大厂,很遗憾。今天这篇文章也说下最近面试的一些问题吧,大家可以提前做准备(最后会凭记忆奉上面试题)

1. 简历问题

  • 简历不需要追求完美,你需要考量的是,你写的简历是否跟你当前阶段的资历与能力所匹配,即使你什么都会,也不要什么都往上写,我的前领导告诉我,你什么都写会激起面试官的斗志,然后使劲问你哈哈哈。。。
    因为你的简历写的太好,可能会导致用人单位不相信,认为你在吹牛,反而更容易导致简历筛选不通过,我就犯了这个错,猎头说我的简历写的跟干了5年一样…
  • 不要什么技能都往简历上写,要体现自己最擅长的一部分。你简历上的每一个点,都是面试官可能会问到的,你写上去就是想给自己加分,那么,一旦面试官问了你没答上来,不会假分反而减分。
  • 项目经验。你做的项目要突出亮点,能给面试官讲出来,并且要说出难点以及如何解决难点的,如果不是你做的,但你非常清楚来龙去脉,难点与如何解决的你都很清楚,那也可以写,但你只是大概知道这个模块的功能和一些技术点的话,还是不建议写到简历上的,你不知道面试官会围绕你的项目给你提出什么样的问题,所以说要慎重!

以上问题,我可能都犯过。在面58的时候,我被虐的遍体鳞伤,当然也是因为简历内推投错了,内推了个高级开发工程师,很难,开局直奔项目架构,把项目用到的技术底层问了个遍,然而项目用到的一些框架、中间件我只是会用,也许是高级开发才会这么问吧…我也不知道,我面其他公司都是围绕我的技术栈问的。。

2. 刷题

        如果你想去大公司,刷题是必不可少的,大厂必问算法,所以说你基础算法必须会!我面的大厂虽然不多,但每次都会问,一面问的也不难,基本都是中等的简单的困难的给你搭配,基本最多只有一个困难的,如果一面的话,可能只会让你做一道算法题,也比较简单,往后难度会加大,但也都是基础算法,去leetcode刷题就可以了,高效且重复地刷题

3. 面试过程方面

        实际上,去大厂通不过的原因,技术往往不是最致命的,而是你不知道面试官想听到什么,我有去面过阿里,一面很好,问我的都是我擅长的,我说了很多,两个知识点说了半个多小时,算法三道也做了两道,感觉没什么问题,整个过程很顺利,但最终并没有通过一面,给到我的反馈是,叙述追求全,但没有重点,什么意思呢?其实就是对于他们而言,你说的这些东西,在网上看看帖子,买本书看看,普通人花点时间都能学会,你在这叭啦叭啦说半天,也突出不了你的亮点,你没说出我想听到的,这句话是关键,所以最致命的是你不能说出面试官想听到的!所以对于面试官的一个问题,你可以追求全面,但也要突出重点,然后把你的重点往深了剖析!比如面试问的我线程池,我就开始一通说参数、原理、拒绝策略、Executors提供的三个线程池的特性等等,只顾追求叙述全面的知识,却忘了抓住一个重点去深度剖析…

我也面过很多小的互联网公司,有好几次问JVM的,我也是能说十几分钟二十分钟,这种小公司,当场就会给面试通过,但是大公司不一样,技术大牛考虑的点不同,只能说要求更高。

阿里一面(1小时10分钟)

  1. 自我介绍
  2. 说说JVM内存模型和内存结构吧
  3. 有用到过线程池吗?可以说说吗?
  4. 了解synchornized的锁升级过程吗?
  5. LRU算法、动态规划

这几个问题度很熟,面试也很顺利,可惜没通过

58一面

  1. 自我介绍
  2. 说一说你最拿手的一个项目吧?
  3. 我看你们用了Elasticjob和Xxljob,那他们有什么区别,为什么Elasticjob不能像Xxljob那样?(这句话有点并不太明白想问什么)
  4. 如果保证消息不丢失的?
  5. 分布式事务了解吗?
  6. RocketMQ与RabbitMQ的最主要区别,你们为什么用RocketMQ?RocketMQ底层可以说说吗?
  7. Spring是如何解决循环依赖的
  8. 知道Redis的String类型底层是怎么实现的吗?
  9. 知道Redis的ZSet做并集的时间复杂度吗?
  10. MVCC有了解吗?假设一个事务中出现幻读以后进行回滚,你能说说这个事务都发生了什么吗?
  11. 判断循环链表
    好像还有一些分布式锁的实现,zk的底层等等吧,记不太清了,注重底层原理

滴滴一面(40分钟)

  1. 自我介绍
  2. Spring中是通过哪些关键接口与MyBatis整合的
  3. 说一说synchornized的实现吧
  4. 有没有实际的SQL优化,可以说说吗?
  5. 能说一说Redis的缓存穿透、击穿、雪崩吗?
  6. CMS垃圾回收器的工作流程
    没有算法题,说是基础挺好,就到这吧
    滴滴二面(50分钟)
  7. 自我介绍
  8. 说下拿手项目
  9. 为什么用RocketMQ而不用RabbitMQ,考虑的点是什么?
  10. 如何保证消息不丢失的?
  11. SQL优化
  12. 你们如何分表的?有没有出现跨库查询数据的问题?
  13. 假设滴滴现在有个出行订单表,让你设计分库分表,你怎么设计?
  14. 一个0-n的数组中间少一个数,如何找到少的那个数?
    滴滴三面(30分钟)
  15. 自我介绍
  16. 介绍项目整体架构,都有什么服务,每个服务做什么的,为什么这么划分?
  17. 如何保证消息不丢失?
  18. 你们是用定时任务做异步通知的,如果定时任务挂了怎么办?有没有什么好的解决方案?
  19. 你们是如何做幂等的?
  20. Redis的String和hash,用哪种做对象缓存比较好,为什么?

三面感觉很草率就结束了,半小时…不知道咋样也,目前还没结果,好了,兄弟们,加油!

你可能感兴趣的:(Java面试总结,缓存,面试,面经,大厂,Java)