写点什么

本科毕业六年,备战一个月,四面阿里巴巴定级 P7

发布于: 2021 年 06 月 08 日
本科毕业六年,备战一个月,四面阿里巴巴定级P7

前言

来自一个四面阿里的面经总结

我觉得有一个能够找一份大厂的 offer 的想法,这是很正常的,这并不是我们的饭后谈资而是每个技术人的追求。像阿里、腾讯、美团、字节跳动、京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司 / 小公司,如果说能够在这样的公司锻炼几年,相信对自己能力的提升还是非常大的。不论是校招还是社招都避免不了各种面试、笔试,如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的。

因为大厂面试一般都有专业团队负责,某个知识点你到底是掌握了还是单纯背下来,面试官一问就可以看出来(PS:真正到面试特别是你觉得准备面试的时间不够的时候,你可以多挑一些面试常问的问题来看,注意理解,一定不要死记硬背)。一定不要过分寄希望于各种面经,试着去提高自己的综合能力。

“ 80% 的 offer 掌握在 20% 的人手 ” 中这句话也不是不无道理的。决定你面试能否成功的因素中实力固然占有很大一部分比例,但是如果你的心态或者说运气不好的话,依然无法拿到满意的 offer。运气暂且不谈,就拿心态来说,千万不要因为面试失败而气馁或者说怀疑自己的能力,面试失败之后多总结一下失败的原因,后面你就会发现自己会越来越强大。

阿里面试常问技术有哪些

数据结构,多线程,jvm,Spring,优化,消息框架,分布式,缓存等以及你使用过的框架且第一轮的基础很重要,通过会后录取可能性就相对高了!

一面(主要是 jvm,并发,锁,数据结构等基础)

  1. 自我介绍(说说自己的擅长及拿手的技术)

  2. 说说 treemap 和 HashMap 的区别?HashMap 和 ConcurrentHashMap 的区别?

  3. HashMap 底层如何实现(JDK1.8 有所改动)?

  4. 说说 Hash 的一致算法?

  5. 你知道的 GC 算法和回收策略有哪些?GC 的机制是什么?

  6. 垃圾回收器的基本原理?是否可以立即回收内存?怎么样主动的通知 JVM 进行垃圾回收?

  7. 双亲委派模型机制

  8. 线程池创建的几个核心构造参数是什么?

  9. 乐观锁和悲观锁?可重入锁和 Synchronized?

  10. 他们都是可重入锁吗?哪个效率更高?

  11. CountDownLaunch 和 Cylicbarrior 的区别以及分别是在哪样场景下使用的?

  12. Http 和 Https 的区别以及 Https 加密的方式?

  13. 以后的职业规划和想法

二面(主要是数据库,协议,Spring 等)

  1. 自我介绍,聊下自己认为做得很好的项目!

  2. InnoDB 支持的四种事务隔离级别名称是什么? 之间的区别是什么?MySQL 隔离级别是什么?

  3. 说说事务的特性?讲讲对慢查询的分析?

  4. 你理解的 BTree 机制?

  5. 有哪些 MySQL 常用的优化方法?

  6. Http 请求过程,DNS 解析的过程?

  7. 三次握手和四次握手的过程?

  8. B+树索引和 Hash 索引之间的区别?

  9. Spring IOC 如何管理 Bean 之间的依赖关系,怎么样避免循环依赖?

  10. SpringBean 创建过程中的设计模式?

  11. 说说 AOP 的实现原理?

  12. Tomcat 的基本架构是什么?

三面(主要是缓存,高并发,分布式)

  1. 自己项目中的总结的并发经验

  2. 说说 MySQL 的锁并发?加锁的机制是什么?

  3. 高并发场景下如何防止死锁,保证数据的一致性?

  4. 集群和负载均衡的算法与实现?

  5. 说说分库与分表设计?

  6. 分库分表带来的分布式困境与对应之策有哪些?

  7. Redis 和 Setnx 命令使如何实现分布式锁的?使用 Redis 怎么进行异步队列?会有什么缺点?

  8. 缓存击穿的概念和解决方案?

  9. Redis 的数据结构? 线程模型? Redis 的数据淘汰机制?

  10. Redis 的数据一致性问题

  11. MQ 底层原理的实现?

  12. 阻塞队列不用 Java 提供的该怎么实现?

  13. 讲讲负载均衡的原理?

  14. 如何实现高并发环境下的削峰、限流?

四面(主要项目入手)

讲讲项目中用到的中间件(Dubbo/MQ/Zookeeper/Redis/Kafka)?

  1. 什么情况下会造成雪崩?该怎么避免这种情况?

  2. 高并发架构的设计思路?

  3. 以前的项目中遇到的问题和解决策略?

  4. 生活中遇到过哪些挫折?最后怎么解决的?

小结

一线互联网公司都比较注重实际的项目中解决问题的能力,另外面试点主要围绕 JVM、多线程相关、基础知识的底层原理、处理高并发的能力。这里也不扯什么面试技巧了,轻松发挥就好,祝大家金三银四季能有个高薪满意的工作!

知其然不知其所以然,阿里常问面试技术如何复习?

0-1 年入门:

  • Java 基础复盘(面向对象+Java 的超类+Java 的反射机制+异常处理+集合+泛型+基础 IO 操作+多线程+网络编程+JDK 新特性)

  • Web 编程初探(Servlet+MySQL 数据库+商品管理系统实战)

  • SSM 从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM 版)

  • SpringBoot 快速上手(SpringBoot+基于 SpringBoot 的商品管理系统实战)

  • 零距离互联网项目实战(Linux+Redis+双十一秒杀实战系统)

1-3 年高工:

  • 并发编程进阶(并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化)

  • JVM 深度剖析(理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC 算法和垃圾回收器+类加载机制等)

  • MySQL 深度进阶

  • 深入 Tomcat 底层(线程模型+性能调优)

3-5 年资深:

  • 数据库(调优+事务+锁+集群+主从+缓存等)

  • Linux(命令+生产环境+日志等)

  • 中间件 &分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud 等组件)

5-7 年架构:

  • 开源框架(Spring5 源码+SpringMVC 源码+Mybatis 源码)

  • 分布式架构(Zk 实战+RabbitMQ+RocketMQ+Kafka)

  • 高效存储(Redis+mongoDB+MySQL 高可用+Mycat+Sharing-Sphere)

  • 微服务架构(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)

10 年以上送外卖:开个小玩笑

Part1:0-1 年入门

1.Java 基础复盘


2.Web 编程初探

3.SSM 从入门到精通

4.SpringBoot 快速上手

5.零距离互联网项目实战(仿小米商城)

Part2:1-3 年高工

1.并发编程进阶

2.JVM 深度剖析

3.MySQL 深度进阶

4.深入 Tomcat 底层

Part3:3-5 年资深

1.数据库

2.Linux

3.中间件 &分布式

Part4:5-7 年架构

1.开源框架

2.分布式架构

3.高效存储

4.微服务架构

总结

虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。

架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。

如果你也想成为一名好的架构师,那或许以上这份 Java 成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

​阿里成长笔记 点击此处 凭截图即可免费获取

用户头像

还未添加个人签名 2020.09.07 加入

还未添加个人简介

评论

发布
暂无评论
本科毕业六年,备战一个月,四面阿里巴巴定级P7