每个程序员都有一个大厂的梦,而互联网大厂首当其冲自然是阿里巴巴最吃香,今天小编就来分享一个小伙进阿里巴巴的面经!
“不想进大厂的程序员不是好程序员”哈哈哈!!!
今年由于疫情原因,互联网整个行业都比较严峻,我比较幸运,不久前意外收到支付宝的面试(三面)已经拿到了offer。
本来春节过后,是金三银四找工作旺季,大部分人年前年后也都准备好了这在两个月里谋得一份自己心仪的工作,奈何今年的2020有些特殊,肺炎肆虐,对我们的工作和生活都造成了极大的影响。那么,是不是这样,我们就不工作,不学习了呢?实际上,正是因为现在正值传染病毒传播期间,所以我们宅在家里好好学习是再好不过的。对于Java程序员来说,利用这两三个月的时间,好好学习,着手准备起来,等到疫情好转,开始面试时,也不至于胆怯。
我也是在这段时间不断的复习,才有幸的能够拿到阿里的offer!
阿里面试大概过程:
一面总体上还是围绕Java基础、JVM、并发编程、数据结构等展开。一面结束后很快安排了二面,相对一面,二面和三面从项目入手多数问的是数据库,缓存,分布式架构等问题且更深入,问题比较刨根问底,更加注重对一些技术细节的理解和把握。比如数据库操作,面试官会详细的问你数据库插入和删除一条数据的过程在底层是如何执行的,项目里配置了读写分离,也会比较深入的就实现方法和底层逻辑展开讨论。HR面很愉快,问了一些薪资和职业规划上的问题!
主要分享下技术四面的问题
阿里一、二面
- 自我介绍
- 链表,数组的优缺点,应用场景,查找元素的复杂度
- 二叉树怎么实现的
- Java中都有哪些锁
- 可重入锁的设计思路是什么
- 乐观锁和悲观锁
- synchronized机制
- hashmap原理,处理哈希冲突用的哪种方法(拉链)
- 还知道什么处理哈希冲突的方法(开放地址检测)
- 开放地址检测怎么实现的
- 从哈希表中删除一个元素,再加入元素时恰好与原来那个哈希冲突,这个元素会放在哪
- 并发容器,Hashtable和concurrenthashmap区别
- redis原子操作怎么用比较好
- 消息队列用过哪些?
阿里三面
操作系统模块:
1、说一下并行和并发的区别
2、你知道进程吗?有进程为何还有线程?
3、操作系统是如何调度进程呢的
4、比如linux下我打开一个文件调用read函数,整个过程说的越细越好
5、同步异步阻塞非阻塞IO详细越好。
网络模块:
- TCP报文格式
- TCP和UDP
- 拥塞控制
- 超时重传
- 三次握手
- 滑动窗口
- 常见协议的端口号
数据库模块:
- 索引数据结构
- 索引常见优化方案
- 存储引擎
- 事务(spring框架如何实现事务的呢)
- 垂直拆分
- 分库分表
- 读写分离
Java模块:
- hashmap
- Arraylist和linkedlist
- voliate
- 线程池,如何根据CPU的核数来设计线程大小,如果是计算机密集型的呢,如果是IO密集型的呢?
- countdownlatch和CyclicBarrier底层实现原理
- 线程状态以及API怎么操作会发生这种转换
JVM模块
面试官说只问三个问题:
1、内存模型以及分区,需要详细到每个区放什么
2、堆里面的分区:Eden,survival ,老年代,各自的特点。
3、垃圾回收算法,什么时候回收。
分布式:
1、redis与memached选型,你更倾向于选择哪个,为什么?
2、分布式事务解决,你知道我们阿里巴巴是怎么做的吗?
3、消息队列比较和选型?
5、CAP
阿里四面
- 自我介绍
- 学习技术的方式,开源、书籍、自学、实践,具体的学习方法?
- 最有技术含量的项目,讲讲从架构设计再到部署的流程
- 常见的数据库瓶颈有哪些,怎么来优化
- 微信附件人这个功能怎么实现的
总结
技术方面,结合自己的体会,总结下面几点:
- 基础知识必须要扎实,包括语言基础,计算机基础,算法和基本的Linux运维等
- 设计模式,造轮子的能力,各种缓存和数据库应用,缓存,中间件技术,高并发和高可用的分布式系统设计
- 软性指标,包括快速学习,良好的沟通能力,以及对相关行业的了解
同时对这次的面试经历和平时的学习复习做了一个总结,现在分享出来也是希望能帮助到和我有一样梦想的朋友。希望将来我们能成为同事。
这份资料非常适合开发2年及以上的朋友学习参考!这份资料包括Java基础,JVM,数据结构,Spring,操作系统,分布式,Linux,网络等等
由于篇幅原因,这份4万字的阿里面经及详细笔记答案就不做全部展示了,这些题我已经整理成pdf文档免费分享给那些有需要的朋友,同时整理也花费了蛮多时间,有需要获取到这个【Java面试核心笔记整理】文档的话帮忙转发一下然后再关注我点击【PDF原件下载】即可领取免费获取方式!
同时还有Java面试必备的知识体系文档和一份Java中高级面试高频考点文档免费分享给大家,这2份文档和面经掌握其中的大部分知识足以面对很多互联网公司包括阿里蚂蚁金服等面试了
Java面试核心知识点笔记
其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。
Java中高级面试高频考点整理
最后还分享Java进阶学习及面试必备的视频教学
从学习路线→☛面试刷题→☛核心知识补漏,以上全套的Java学习资源皆可免费共享给有需求的你,还请仔细关注一下免费下载原件的方式:
1:一键三连+评论此文(码字不易,一键三连是对此文的一个认可,也可让更多朋友阅读到)
2:加小姐姐VX:k15197783918