前言
拿到阿里实习offer,经历了5次面试,其中4轮技术面,1轮HR面试。在这里分享一下自己的面试经验和学习心得。希望能够帮助更多的小伙伴。
我本科毕业于中南大学信管专业,真正开始学习Java是在大三下学期,研究生就读北航的移动云计算专业。刚开始也是小白,也是一步步成成起来的。需要提的一点是,你将来是需要靠这个吃饭的,所以请对找工作保持十二分的热情,而且越早准备越好。
蚂蚁三面面经(java开发岗):Java锁机制+JVM+线程池+事务+中间件
一面
1、HaspMap底层原理?HaspTable和ConcurrentHashMap他们之间的相同点和不同点?
2、由上题提到锁的问题
3、MySQL的表锁行锁乐观锁悲观锁,各自的使用场景
4、Java线程锁有哪些,各自的优劣势
5、事务四大特性
6、事务的二段提交机制?
7、聚簇索引非聚簇索引
8、G1回收器讲下回收过程
9、Tcp三次握手,四次挥手大概讲一下?
10、类加载过程
11、双亲委派机制及使用原因
12、JVMGC算法有哪些,目前的JDK版本采用什么回收算法
13、HttpHttps的区别
14、Https的加密方式
15、线程池的核心参数和基本原理
16、线程池的调优策略
17、问问题(你有什么职业规划)
二面:
1、java什么时候发生死锁
2、如何避免死锁
3、B+树的原理
4、分布式一致性协议,二段、三段、TCC,优缺点
5、分布式架构与微服务的关系
6、DNS解析过程
7、线程池实现过没?
8、SpringIOC、AOP
9、SpringBoot、SpringCloud的一些应用
10、ACIDCAPBASE理论,以及RPC过程。
11、问问题(你有什么职业规划)没错,每个面试官都要问这个问题,三面也是
三面:(P9面,聊人生居多)
1、项目中用的中间件的理解(Dubbo、MQ、Redis、kafka、zookeep)
2、参与过类似秒杀的项目?你认为这样的项目挑战在哪里,怎么解决
3、项目中遇到的最大问题和解决策略
4、生活中遇到的最大的挫折
5、生活中遇到的最大的令你最有成就感的事情
6、问问题(你有什么职业规划)
以上就是蚂蚁Java后端开发面试题,以下最新总结的阿里高级Java必考题范围和答案,转发+私信回复即可得到获取方式
蚂蚁花呗团队面试题:LinkedHashMap+SpringCloud+线程锁+分布式
蚂蚁花呗团队一面
自我介绍map怎么实现hashcode和equals,为什么重写equals必须重写hashcode使用过concurrent包下的哪些类,使用场景等等。concurrentHashMap怎么实现?concurrenthashmap在1.8和1.7里面有什么区别CountDownLatch、LinkedHashMap、AQS实现原理线程池有哪些RejectedExecutionHandler,分别对应的使用场景多线程的锁?怎么优化的?偏向锁、轻量级锁、重量级锁?组合索引?B+树如何存储的?为什么缓存更新策略是先更新数据库后删除缓存OOM说一下?怎么排查?哪些会导致OOM?OSI七层结构,每层结构都是干什么的?java的线程安全queue需要注意的点死锁的原因,如何避免蚂蚁花呗团队二面
jvm虚拟机老年代什么情况下会发生gc,给你一个场景,一台4核8G的服务器,每隔两个小时就要出现一次老年代gc,现在有日志,怎么分析是哪里出了问题数据库索引有哪些?底层怎么实现的?数据库怎么优化?数据库的事务,四个性质说一下,分别有什么用,怎么实现的?服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器volatile讲讲哪些设计模式?装饰器、代理讲讲?redis集群会吗?mysql存储引擎事务隔离级别不可重复度和幻读,怎么避免,底层怎么实现(行锁表锁)蚂蚁花呗团队三面
项目介绍分布式锁是怎么实现的MySQL有哪几种join方式,底层原理是什么Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?Redis扩容,失效key清理策略Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点。MySQL数据库怎么实现分库分表,以及数据同步?单点登录如何是实现?谈谈SpringBoot和SpringCloud的理解未来的技术职业怎么规划?为什么选择阿里?以上就是蚂蚁花呗团队面试题,以下最新总结的最全阿里集团高级Java必考题范围和答案,转发+私信回复即可得到获取方式
以上就是蚂蚁花呗团队面试题,
以下最新总结的最全阿里集团高级Java必考题范围和答案
,
转发+私信回复即可得到获取方式
蚂蚁花呗1-5面(高级):分布式+MySQL+HashMap+线程池+MQ+Redis
蚂蚁花呗一面:技术面
线程池的工作原理,几个重要参数?给了具体几个参数,分析线程池会怎么做?Java容器有哪些?哪些是同步容器,哪些是并发容器?ArrayList和LinkedList的插入和访问的时间复杂度?java反射原理,注解原理?新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?HashMap在什么情况下会扩容,有哪些操作会导致扩容?HashMappush方法的执行过程?HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?1.8还采用了红黑树,讲讲红黑树的特性,为什么人家一定要用红黑树而不是AVL、B树之类的?