写点什么

五面阿里技术专家岗,已拿 offer,这些面试题你能答出多少

用户头像
周老师
关注
发布于: 22 小时前

面试职位:Java 后端开发工程师。


在面试前三面真的有点急促,一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了四面和 HR 面。整个过程还是比较曲折的,技术面试还是挺考察技术深度的。现在已拿到 offer。

面试问题如下:

一面(主要看基础):

  1. 先自我介绍,讲讲自己基础掌握情况,以及项目经历

  2. 平时会用到哪些数据结构?

  3. 链表和数组的优缺点?

  4. 解决 hash 冲突的方法有哪些?

  5. 讲讲自己对 HashMap 的理解,以及和 Weakhashmap 的区别?

  6. 你刚才讲的是 JDK1.7 版本的实现,知道 JDK1.8 做了哪些改动么?

  7. 你们在微服务中用 RPC 通信还是 REST?

  8. RPC 和 HTTP 的关系是什么?

  9. 谈谈什么是 HTTP 的长连接和短连接?

  10. TCP 的三次握手和四次挥手,以及为什么要三次握手,而不是二次?

  11. TCP 有哪些状态,相应状态的含义?

  12. 并发包中锁的实现底层(对 AQS 的理解)?

  13. 乐观锁和悲观锁的理解及如何实现,有哪些实现方式?

  14. SynchronizedMap 和 ConcurrentHashMap 有什么区别?

  15. 如何使用阻塞队列实现一个生产者和消费者模型?

  16. 简述一下 Java 垃圾回收机制?

  17. 如何判断一个对象是否存活?

  18. 什么是 tomcat 类加载机制?

  19. 类加载器双亲委派模型机制?

  20. 让你评价一下你自己?

二面(主要问了底层和算法):

  1. 扯了下项目、讲一下项目经历

  2. redis 的底层数据结构了解多少?

  3. 知道动态字符串 sds 的优缺点么(redis 底层数据结构之一)?

  4. redis 的单线程特性有什么优缺点?

  5. 用过 Redis 的哪些数据结构, 分别用在什么场景?

  6. 怎么解决缓存击穿问题的?

  7. Hytrix 的隔离机制有哪些?Hytrix 常见配置是哪些?

  8. 做过哪些调优?JVM 调优、数据库调优都行!

  9. 给了个场景,问你怎么调?

三面(数据库):

  1. 依然是介绍自己

  2. 数据库的高可用架构是怎么样的?

  3. 如何保证数据库主从一致性?

  4. 知道 mysql 的索引算法吗?

  5. 为什么 mongodb 的索引用了 B 树,而 mysql 用 B+树?

  6. 用 mysql 过程中,有遇到什么问题么?

  7. 生产用的是哪种事务隔离级别,为什么?

  8. 谈一谈你对微服务架构的理解?

  9. 用过哪些 RPC 框架,讲讲他们优缺点?

  10. 用过 docker 吗,对容器了解多少?

四面(偏架构方面):

  1. 介绍一下自己,讲讲项目经历

  2. 项目中微服务是怎么划分的,划分粒度怎么确定?

  3. 在实践微服务架构中,有遇到什么问题?

  4. 在关于微服务间数据一致性问题,是如何解决的?

  5. 为什么不用其他的 MQ,最终选择了 RokcetMQ?

  6. 为什么 RocketMQ 没有选择 ZooKeeper,而是自己实现了一个 NameServer 集群?

  7. Zookeeper 在选举的过程中,还能对外提供服务么?

  8. 对 Paxos 算法了解多少?

  9. 如果让你来设计一个春晚抢红包架构,你会怎么设计?

  10. 有什么想问我的?

五面(HR 面):

聊人生谈理想,HR 很 ncie,主要交流为什么选择来阿里,未来的打算职业规划以及待遇等,交流挺愉快。

面试小结:

技术基础必须扎实:算法、数据结构、操作系统等,蚂蚁金服面试对技术的基础非常重视,基础扎实的同学有利于在前两轮突出重围。

技术宽度:主要集中在高并发、多线程、分布式架构,大以及常用中间件(缓存等)的选型和比较。

技术原理深入:重点还是提前准备好 JVM、多线程高并发这块。

参与的项目总结:你需要清楚你所做项目的关键细节、优化、特点、原理。

很多所用第三方库 &中间件等的原理,即使你不知道,也要有自己的想法能够说出如何代替实现,比如单点登录的替代方案。

最后,千万不要倒在 HR 面试环节,避重就轻是重点,特别是优点和缺点,如果问到你的规划是什么,请记得一定告诉 HR 你想成为一名优秀的技术专家!


分享一些我个人的学习文档,有需要的朋友自行选择获取:

一本 Java 核心面试知识宝典把每个知识点解析的很深,对大家应该很有帮助,它把大部分的 Java 知识集结在一起深入的解析出来(非常建议大伙看一看)

  1. JVM

  2. JAVA 集合

  3. JAVA 多线程并发

  4. JAVA 基础

  5. Spring 原理

  6. 微服务

  7. Hetty 与 PC

  8. 网络

  9. 日志

  10. Zookeeper

  11. Kafks

  12. Rabbi tMQ

  13. Hbase

  14. MongoDB

  15. Cassandra

  16. 设计模式

  17. 负载均衡

  18. 数据库

  19. 一致性算法

  20. JAVA 算法

  21. 数据结构

  22. 加密算法

  23. 分布式缓存

  24. Hadoop

  25. Spark

  26. Storm

  27. YARIN

  28. 机器学习

  29. 云计算


2019 年一线互联网企业 350 道面试答案整理

  1. 性能优化面试专栏

  2. 微服务架构面试专栏

  3. 并发编程高级面试专栏

  4. 开源框架面试题专栏

  5. 分布式面试专栏


大厂的面试场景


1、面试文档专题整理

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

根据自身面试经历整理以及不断收集的(珍藏版)


相关的电子书、底层源码


阿里巴巴必备学习知识点


最后

很多人感叹“学而无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享 Java 进阶面试宝典、Java 核心知识、架构书籍电子版


用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
五面阿里技术专家岗,已拿offer,这些面试题你能答出多少