背景介绍:
毕业于华南理工大学,学历本科,专业计算机,未读研,在美团实习之后有幸转正留下来了,中途有跳槽过一次,但也是三年前了,前后大约也有5年的Java经验了,今年拿到内推名额,准备跳槽阿里,没想到的是这次阿里面试挺顺利的,4面直通,没有一点障碍,总共就花了一个星期的时间拿到了offer,特分享一下自己这次阿里面经,希望能够给一些求职阿里的朋友带来帮助。
阿里一面:
自我介绍
项目介绍
osi七层网络模型,五层网络模型,每次层分别有哪些协议
死锁产生的条件, 以及如何避免死锁,银行家算法?产生死锁后如何解决?
如何判断链表有环?
虚拟机类加载机制,双亲委派模型,以及为什么要实现双亲委派模型
虚拟机调优参数
拆箱装箱的原理
JVM垃圾回收算法
synchronized与lock的区别,使用场景
JVM自动内存管理,Minor GC与Full GC的触发机制
了解过JVM调优没,基本思路是什么
如何设计存储海量数据的存储系统
缓存的实现原理,设计缓存要注意什么
淘宝热门商品信息在JVM哪个内存区域
操作系统的页式存储
volatile关键字的如何保证内存可见性
阿里二面:
自我介绍
B-树索引,myisam和innodb中索引的区别
BIO和NIO的应用场景
讲讲threadlocal
数据库隔离级别,每层级别分别用什么方法实现,三级封锁协议,共享锁排它锁,mvcc多版本并发控制协议,间隙锁
数据库索引?B+树?为什么要建索引?什么样的字段需要建索引,建索引的时候一般考虑什么?索引会不会使插入、删除作效率变低,怎么解决?
数据库表怎么设计的?数据库范式?设计的过程中需要注意什么?
共享锁与非共享锁、一个事务锁住了一条数据,另一个事务能查吗?
Spring bean的生命周期?默认创建的模式是什么?不想单例怎么办?
阿里三面:
自我介绍,不超过3分钟
说一下你之前的项目
项目使用了什么架构,亮点是什么
主要有哪些核心模块,模块之间如何通信的
HashMap和Hashtable的区别
实现一个保证迭代顺序的HashMap
说一说排序算法,稳定性,复杂度
说一说GC
JVM如何加载一个类的过程,双亲委派模型中有哪些方法?
TCP如何保证可靠传输?三次握手过程?
springboot的启动流程
集群、负载均衡、分布式、数据一致性的区别与关系
数据库如果让你来垂直和水平拆分,谁先拆分,拆分的原则有哪些(单表数据量多大拆)
谈谈Redis、Kafka、 Dubbo,各自的设计原理和应用场景
讲一下O(nlogn)复杂度的算法在实际工程中的用处
阿里四面(HR面):
自我介绍
为什么选择阿里?
自己的职业规划是什么?
阿里的技术氛围怎么样?
之前工作中有遇到过什么困难吗?怎么解决的?
用过哪些阿里的开源库
每天有那么多人使用支付宝,这些数据如果给你存储,你会怎么设计呢?
如果给你一千万资金创业,你会怎么分配,自己承担什么样的角色?
你期待的工作地点是?
你还有什么想问的吗?
总结:
很珍惜这次内推的机会,所以为了这次阿里面试的机会准备了很多,自己整理了不少学习资料和面试题,刷了一遍又一遍。