蚂蚁4轮面经(Java研发):悲观锁+G1收集器+幻读

01

技术一面

线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少?数据库连接池介绍下,底层实现说下hashset底层实现,hashmap的put操作过程说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点?说说B+树和B树的区别,优缺点等?算法题,对一个链表进行归并排序,链表可能有环怎么实现一个线程安全的计数器?原子类AtomicInteger实现原理是什么?和你设计的计数器优劣比较?CAS怎么实现原子操作的?Java中的锁有什么?synchronized与Lock的区别?公平锁和非公平底层怎么实现的?AQS原理详细介绍一下?你在项目中一般怎么调优JVM的呢?说一下GC吧,什么时候进行Full GC呢?你了解哪些收集器?CMS和G1。详细谈谈G1的优点

02

技术二面

了解哪些排序算法,讲讲复杂度手撕归并排序Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?redis的hash数据结构最多能存储多少个元素自己如何实现RPC?mysql默认存储引擎?MyISAM、InnoDB、MEMORY的区别什么是幻读,如何解决事务隔离级别有什么?通过什么来实现的?分别解决了什么问题?乐观锁与悲观锁的使用场景

03

技术三面

介绍对你技术能力帮助最大的项目,重点讲架构设计思路分布式全局唯一ID怎样来实现?dubbo的生产者如何发布服务,注册服务,消费者如何调用服务?dubbo负载均衡的策略有哪些?一致性哈希详细聊一下?分布式session如何实现的微服务你的理解?以及常用的微服务方案dubbo、spring cloud的比较?Kafka怎么保证数据可靠性?数据库主从同步数据一致性如何解决?技术方案的优劣势比较?分布式锁的实现方式你知道有哪些?主流的解决方案是什么?

04

HR四面

常规问题为主

聊人生的经历聊印象深刻的人生的经历说下技术方面或者生活方面你做得比较好的一个点和不足的一个点吧?职业规划