面试职位:Java后端开发工程师。
在面试前三面真的有点急促,一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了四面和HR面。整个过程还是比较曲折的,技术面试还是挺考察技术深度的。现在已拿到offer。
面试问题如下:
一面(主要看基础):
先自我介绍,讲讲自己基础掌握情况,以及项目经历
平时会用到哪些数据结构?
链表和数组的优缺点?
解决hash冲突的方法有哪些?
讲讲自己对HashMap的理解,以及和Weakhashmap的区别?
你刚才讲的是JDK1.7版本的实现,知道JDK1.8做了哪些改动么?
你们在微服务中用RPC通信还是REST?
RPC和HTTP的关系是什么?
谈谈什么是HTTP的长连接和短连接?
TCP的三次握手和四次挥手,以及为什么要三次握手,而不是二次?
TCP 有哪些状态,相应状态的含义
并发包中锁的实现底层(对AQS的理解)?
乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
SynchronizedMap和ConcurrentHashMap有什么区别?
如何使用阻塞队列实现一个生产者和消费者模型?
简述一下Java 垃圾回收机制?
如何判断一个对象是否存活?
什么是tomcat类加载机制?
类加载器双亲委派模型机制?
让你评价一下你自己?
二面(主要问了底层和算法):
扯了下项目、讲一下项目经历
redis的底层数据结构了解多少?
知道动态字符串sds的优缺点么(redis底层数据结构之一)?
redis的单线程特性有什么优缺点?
用过 Redis 的哪些数据结构, 分别用在什么场景
怎么解决缓存击穿问题的?
Hytrix的隔离机制有哪些?Hytrix常见配置是哪些?
做过哪些调优?JVM调优、数据库调优都行!
给了个场景,问你怎么调?
三面(数据库):
依然是介绍自己
数据库的高可用架构是怎么样的?
如何保证数据库主从一致性?
知道mysql的索引算法吗?
为什么mongodb的索引用了B树,而mysql用B+树?
用mysql过程中,有遇到什么问题么?
生产用的是哪种事务隔离级别,为什么?
谈一谈你对微服务架构的理解?
用过哪些RPC框架,讲讲他们优缺点?
用过docker吗,对容器了解多少?
四面(偏架构方面):
介绍一下自己,讲讲项目经历
项目中微服务是怎么划分的,划分粒度怎么确定?
在实践微服务架构中,有遇到什么问题?
在关于微服务间数据一致性问题,是如何解决的?
为什么不用其他的MQ,最终选择了RokcetMQ?
为什么RocketMQ没有选择ZooKeeper,而是自己实现了一个NameServer集群?
Zookeeper在选举的过程中,还能对外提供服务么?
对Paxos算法了解多少?
如果让你来设计一个春晚抢红包架构,你会怎么设计?
有什么想问我的?
五面(HR面):
聊人生谈理想,HR很ncie,主要交流为什么选择来阿里,未来的打算职业规划以及待遇等,交流挺愉快。
面试小结:
技术基础必须扎实:算法、数据结构、操作系统等,蚂蚁金服面试对技术的基础非常重视,基础扎实的同学有利于在前两轮突出重围。
技术宽度:主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。
技术原理深入:重点还是提前准备好JVM、多线程高并发这块。
参与的项目总结:你需要清楚你所做项目的关键细节、优化、特点、原理。
很多所用第三方库&中间件等的原理,即使你不知道,也要有自己的想法能够说出如何代替实现,比如单点登录的替代方案。
最后,千万不要倒在HR面试环节,避重就轻是重点,特别是优点和缺点,如果问到你的规划是什么,请记得一定告诉HR你想成为一名优秀的技术专家!
分享一些我个人的学习文档-----传送门-----有需要的朋友自行选择获取:
一本Java核心面试知识宝典把每个知识点解析的很深,对大家应该很有帮助,它把大部分的Java知识集结在一起深入的解析出来(非常建议大伙看一看)
JVM
JAVA集合
JAVA多线程并发
JAVA基础
Spring原理
微服务
Hetty与PC
网络
日志
Zookeeper
Kafks
Rabbi tMQ
Hbase
MongoDB
Cassandra
设计模式
数据库
一致性算法
JAVA算法
数据结构
加密算法
分布式缓存
Hadoop
Spark
Storm
YARIN
机器学习
云计算
一线互联网企业350道面试答案整理
性能优化面试专栏
微服务架构面试专栏
并发编程高级面试专栏
开源框架面试题专栏
分布式面试专栏
大厂的面试场景
1、面试文档专题整理
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
根据自身面试经历整理以及不断收集的(珍藏版)
相关的电子书、底层源码
阿里巴巴必备学习知识点
最后
很多人感叹“学而无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
以上学习资料均免费放送-----传送门-----最后祝愿各位身体健康,顺利拿到心仪的offer!