普通本科,一年经验外包直接跳槽阿里?论我是怎么快速晋升的

本文记录了一名普通本科、一年外包经验的开发者成功跳槽阿里的五轮面试经历,包括电话面试、视频面试,涉及Java、数据库、分布式、微服务等多个技术领域的问题。面试中讨论了TCP三次握手、线程池、JVM优化、数据库事务、分布式锁等核心知识点。

前言

前段时间有幸被阿里的一位同学内推,参加了阿里巴巴Java岗位的面试,本人21年双非本科软件工程专业,目前有一年半的工作经验,面试前就职于一家外包公司。如果在自己本人拿到offer之前,如果有人告诉我一年工作经验可以直接从外包进阿里,我肯定是不信。但是真的发生在自己身上,真的觉得非常非常幸运与不可思议。

Alibaba的这次面试总共有五面,包括:

  • 第一轮电话面试(同事面):将近1h20min,主要是介绍项目与基础知识
  • 第二轮视频面试(组长面):将近1h,同样也是介绍项目与基础知识
  • 第三轮视频面试(主管面):将近40min,更深次的项目以及分布式的解决方案
  • 第四轮视频面试(主管面):将近1h,项目介绍以及基础知识,也会问你的职业规划
  • 第五轮视频面试(HR):将近30min,离职原因和薪资问题

第一轮电话面试(同事面)

  1. HashMap和HashTable以及CocurrentHashMap详细说明
  2. 网络IO模型?什么是多路复用IO?select和epoll的差别?
  3. TCP三次握手的过程,如果没有第三次握手有什么问题?
  4. 常用的线程池有哪些?各自的应用场景?
  5. Java类加载机制?双亲委派模型的好处?
  6. JAVA并发包组件了解多少?
  7. 什么时候多线程会发生死锁?怎么来预防
  8. 操作系统的用户态和核心态切换条件以及为什么要切换
  9. 数据库事务特点?事务隔离级别?项目中的事务实现?脏读、不可重复读、幻读各举个例子?

第二轮视频面试(组长面)

  1. 数据库索引?B+树?为什么要建索引?什么样的字段需要建索引,建索引的时候一般考虑什么?索引会不会使插入、删除操作效率变低,怎么解决(分表分库作)?
  2. 设计模式,单例模式,怎么保证线程安全?锁效率太低,怎么提高效率?
  3. CAS?CAS本质是什么?什么是原子性?Compare and Swap两步操作,为什么能保证原子性(涉及到CPU指令)?
  4. 分布式锁的实现知道到哪些?你更推荐哪一种锁?
  5. Redis的持久化操作有哪些?
  6. 如何利用redis处理热点数据

第三轮视频面试(主管面)

  1. 有接触过哪些消息队列中间件?如何来选型?
  2. 谈谈你的SOA以及微服务的理解?
  3. 具体谈谈Spring Cloud服务和注册?
  4. 分布式的cap了解么,分别指什么?
  5. 网络编程nio和netty相关,netty的线程模型,零拷贝实现?

第四轮视频面试(主管面)

  1. Redis是单线程还是多线程?Redis的分布式集群怎么做?
  2. 了解过集群雪崩么?
  3. 谈谈高并发场景下削峰,限流的实现?
  4. 你之前工作的项目里个人最满意的,谈谈你的架构设计思路?
  5. 未来2年是怎样打算的?

第五轮视频面试(HR面)

  1. ​为什么要从上一家公司离职?
  2. 为什么要选择这里?
  3. 如何看待加班问题?
  4. 平时自己是怎么学习技术的,除了Java相关,还会去了解其他什么技术?
  5. 期待的薪资是多少?

总结

稍整理了一下,主要涉及以下知识:Java、数据库、分布式、中间件、微服务等,我大致将每个部分的问题整理了一下,并且附带了整理与其对应的最硬核的复习笔记(我花了不少时间整理的,希望能对你有用-公众号【不脱发有志青年】

第一:Java部分

面试问题:

  1. Jdk1.7与jdk1.8 在g1垃圾回收器上有什么区别?
  2. 常见的加载器有哪些,如何自定义一个加载器?
  3. 生产上有没有遇到JVM参数调优的问题?
  4. 知道什么是内存泄露吗,如何手动去造成内存泄露?
  5. 线程池常见的一些参数,知道Future接口吗?
  6. 常见的代理有哪些,两者有什么区别?

相关复习笔记:

1.JVM复习参考:多线程+垃圾回收+GC+类加载机制...

JVM复习参考:多线程+垃圾回收+GC+类加载机制...

2.Java性能调优实战:JVM+多线程+数据库+设计模式+Tomcat+实战演练...

Java性能调优实战:JVM+多线程+数据库+设计模式+Tomcat+实战演练...

第二:数据库部分

面试问题:

  • 常见的索引类型有哪些?
  • 为什么主键索引使用B+树而不去使用B树?
  • 说一说联合索引最左原则的原理,并且什么情况下索引是生效的?为什么?
  • 常见的隔离级别有哪些?有什么区别?
  • 知道回表查询吗?聚集索引?
  • 项目中有没有使用到分表分库?说一说怎么分的?

相关复习笔记:

1.MySQL数据库复习参考:索引+锁+分库分表...

MySQL数据库复习参考:索引+锁+分库分表...

2.MySQL高级知识整合:架构+存储引擎+锁+事务+SQL优化...

第三:分布式/中间件部分

面试问题:

  • Redis是单线程的吗?
  • 为什么Redis的性能比较高?
  • Redis集群化的方式有哪些?怎么确保数据的一致性?说一说你对一致性hash的认识。
  • 消息队列中拉模式与推模式的区别?
  • 使用消息队列有没有遇到消息丢失的情况,怎么去设计补偿行为?
  • 说一说项目中为什么使用Kafka而不去使用其它消息队列?
  • 说一说Zookeeper中的Zab协议?
  • 分布式锁的实现方案有哪些?各有哪些优势与缺点?
  • 分布式限流Sentinel中线程模式与QPS模式的区别?
  • Sentinel阈值单机模式与集群模式的区别?
  • 如何解决限流时在一个服务中调用外部服务,不会因为外部服务超时,导致被限流。
  • ElaticJob分布式调度时如何解决数据倾斜的问题?

相关复习笔记:

1.Redis复习参考(68道高频面试解析题):基础+数据结构+高并发处理+集群+缓存...

Redis复习参考(68道高频面试解析题):基础+数据结构+高并发处理+集群+缓存...

2.Kafka复习参考:集群+生产者+消费者+源码...

Kafka复习参考:集群+生产者+消费者+源码...

3.RocketMQ复习参考:消息+源码+队列...

RocketMQ复习参考:消息+源码+队列...

4.消息队列高频面试整理:面试官心理分析+面试题详解...

消息队列高频面试整理:面试官心理分析+面试题详解...

5.分布式系统高频面试整理:Dubbo+Zookeeper+分布式事物+分布式锁...

分布式系统高频面试整理:Dubbo+Zookeeper+分布式事物+分布式锁...

第四:微服务部分

面试问题:

  • 有没有遇到dubbo连接数爆满的问题?
  • dubbo如何实现使用zookeeper找到对应的服务?
  • dubbo使用zookeeper作为分布式治理中心有什么弊端?
  • 说说你认为dubbo与SpringCloud的差异?

相关复习笔记:

1.微服务高频面试整理

微服务高频面试整理

2.SpringCloud Alibaba实战笔记

SpringCloud Alibaba实战笔记

SpringCloud Alibaba实战笔记

其它

  • SpringBoot的启动过程?
  • 如果访问一个域名,说说怎么达到我们的应用服务器
  • 如何解决秒杀模块“库存”超卖的问题?
  • 如何解决秒杀模块“订单超时回库存”的问题?

1.SpringBoot学习教程

SpringBoot学习教程

2.高并发系统设计相关问题

高并发系统设计相关问题

总的来说,其实Alibaba的面试总会结合你项目经验QQ提问,还是相当全面的。所以在面试之前,除了刷题,你还得有能够“拿得出手”的项目做好充分的准备!面试官可能会让你介绍一下这个项目包括项目背景、项目架构、QPS等等...

另一方面,“面试造火箭,工作拧螺丝”这可也不是说着玩的,关键还是要对自己有信心,只要自己准备得足够充分,就可以在面试中发挥自如!

关于刷题方面,上面我整理了一份Java高级面试知识整理(包括:消息队列、缓存、MySQL、高并发、分布式、高可用、微服务等)。

其他还有JVM、数据库、消息中间件、分布式、调优、kafka、微服务、SpringBoot、SpringCloud、Redis等等的复习笔记,都有整理对应的文档皆如前文所见!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值