每个人都拥有大厂梦,我也不例外,在小公司待久了,感觉人会荒废掉,太轻松,没有压迫感。在众多大厂中,最终选择了阿里。“年轻、活力、富有激情”是我听到得最多对它的形容词,所以毅然决然,希望自己能够在这个舞台上展示出自己。
以下分享这次面试阿里中间件和蚂蚁的面试题,另外还对自己的面试做了一些总结,总结里含有一些学习方法和资料,需要的朋友可以直接在文末免费领取!
开始~~阿里中间件(四面)
Java中间件一面
技术一面考察范围:
重点问了Java线程锁:synchronized和ReentrantLock相关的底层实现线程池的底层实现以及常见的参数数据结构基本都问了一遍,链表、队列等Java内存模型:常问的JVM分代模型,以及JDK1.8后的区别,最后还问了JVM相关的调优参数分布式锁的实现比较技术一面题目:
自我介绍擅长哪方面的技术?java有哪些锁中类?(乐观锁悲观锁、可重入锁Synchronize等)比较重要的数据结构,如链表,队列,栈的基本原理及大致实现J.U.C下的常见类的使用。Threadpool的深入考察;blockingQueue的使用Java内存分代模型,GC算法,JVM常见的启动参数;CMS算法的过程Volatile关键字有什么用(包括底层原理)?线程池的调优策略Springcloud的服务注册与发现是怎么设计的?分布式系统的全局id如何实现分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下那个性能更好?Java中间件二面
技术二面考察范围:
问了项目相关的技术实现细节数据库相关:索引、索引底层实现、mysql相关的行锁、表锁等redis相关:架构设计、数据一致性问题容器:容器的设计原理等技术二面题目:
参与的项目,选一个,技术难度在哪里?Collections.sort底层排序方式负载均衡的原理设计模式与重构,谈谈你对重构的理解谈谈redis相关的集群有哪些成熟方案?再谈谈一致hash算法(redis)数据库索引,B+树的特性和建树过程Mysql相关的行锁,表锁、乐观锁、悲观锁谈谈多线程和并发工具的使用谈谈redis的架构和组件Redis的数据一致性问题(分布式多节点环境单机环境)Docker容器Java中间件三面
技术三面考察范围:
主要谈到了高并发的实现方案以及中间件:redis、rocketmq、kafka等的架构设计思路最后问了平时怎么提升技术的技术三面题目:
高并发情况下,系统是如何支撑大量的请求的?接着上面的问题,延伸到了中间件,kafka、redis、rocketmq、mycat等设计思路和适用场景等最近上过哪些技术网站?最近再看哪些书?工作和生活中遇见最大的挑战,怎么去克服?未来有怎样的打算Java中间件四面
最后,你懂的,主要就是HR走流程了,主要问了未来的职业规划。
蚂蚁中间件团队面试题
蚂蚁中间件一面
自我介绍JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK采用什么算法?新生代和老年代的回收机制讲一下ArrayList和linkedlist的区别,ArrayList与HashMap的扩容方式Concurrenthashmap1.8后的改动Java中的多线程,以及线程池的增长策略和拒绝策略了解么?Tomcat的类加载器了解么?Spring的ioc和aop,Springmvc的基本架构,请求流程HTTP协议与Tcp有什么区别,