?花费6个月的时间,五面阿里java岗,最后竟然差点倒在最后HR面

天启架构技术分享 2020-11-07 16:54:18
面试 设计模式 redis


不知道多少人为了去阿里技术部看看,经历过什么,本人的为了面阿里,前后准备时间和面试一共花费了6个月的时间。

在面试前三面真的有点急促,一周内就面完了三次面试,接着就开始无尽的等待,整整等了三周左右,终于完成了四面和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开发1—2年基础:JVM篇

本篇主要讲述了JVM原理,涉及JVM运行机制、JVM内存模型、常用垃圾回收算法和JVM类加载机制等内容。

1—2年Java工程师必会:Java基础篇

本篇讲解Java基础知识,涉及集合、异常分类及处理、反射、注解、内部类、泛型和序列化等内容。

Java开发2—3年高级工程师:Java并发编程篇

本篇讲述讲解Java并发编程知识,涉及Java多线程的工作原理及应用、Java线程池的工作原理及应用,以及锁、进程调度算法等内容。

Java面试中必问的数据结构:数据结构篇

本篇讲解数据结构知识,涉及栈、队列、链表、散列表、二叉树、红黑树、图和位图等内容。

3—4年Java架构师必问:常用算法篇

本篇讲解Java中的常用算法,涉及二分查找、冒泡排序、插入排序、快速排序、希尔排序、归并排序、桶排序、基数排序等算法。

5年Java架构师面试必问网络底层:网络与负载均衡篇

本篇讲解网络与负载均衡原理,涉及TCP/IP、 HTTP、常用负载均衡算法和LVS原理等内容。

Java架构师进阶:数据库及分布式事务篇

本篇讲解数据库及分布式事务原理,涉及数据库存储引擎、数据库并发操作和锁、数据库分布式事务等内容。

Java高级架构师必备:分布式缓存的原理及应用篇

本篇讲解分布式缓存的原理及应用,涉及分布式缓存介绍、Ehcache原理及应用、Redis原理及应用、分布式缓存设计的核心问题等内容。

设计模式篇

本篇讲解设计模式,涉及常见的23种经典设计模式。

这份笔记是对Java程序员面试必备知识点的总结,详细讲解了JVM原理、多线程、数据结构和算法、分布式缓存、设计模式等面试必备知识点,在讲解时不拖泥带水,力求精简。

这份笔记可以作为大家面试突击的一份宝典,肯定会有奇效!

100%免费获取方式:点赞这篇文章+关注我,扫码获取!

 

大厂面试真题整理

深圳-腾讯-Java高级

杭州-蚂蚁金服-Java高级

杭州-蚂蚁金服-资深工程师

上海-拼多多-Java高级

深圳-丰巢科技-Java高级

100%免费获取方式:点赞这篇文章+关注我,扫码获取!

版权声明
本文为[天启架构技术分享]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4661526/blog/4707596

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云