一份“热腾腾”的面经分享(涵盖国内知名大厂)

发布时间:2026/7/28 18:14:28
一份“热腾腾”的面经分享(涵盖国内知名大厂) 百度现场面试JVM算法Redis数据库(三面百度一面现场自我介绍Java中的多态为什么要同时重写hashcode和equalsHashmap的原理Hashmap如何变线程安全每种方式的优缺点垃圾回收机制Jvm的参数你知道的说一下设计模式了解的说一下啊手撕一个单例模式算法题目手撕算法反转单链表手撕算法实现类似微博子结构的数据结构输入一系列父子关系输出一个类似微博评论的父子结构图手写java多线程手写java的soeket编程服务端和客户端手撕算法 爬楼梯写出状态转移方程智力题时针分针什么时候重合百度二面现场自我介绍项目介绍服务器如何负载均衡有哪些算法哪个比较好一致性哈希原理怎么避免DDOS攻击请求打到少数机器。TCP连接中的三次握手和四次挥手四次挥手的最后一个ack的作用是什么为什么要time wait为什么是2msl。数据库的备份和恢复怎么实现的主从复制怎么做的什么时候会出现数据不一致如何解决。Linux查看cpu占用率高的进程手撕算法给定一个数字三角形找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。然后继续在这个问题上扩展求出最短那条的路径递归求出所有的路径设计模式讲一下熟悉的会不会滥用设计模式多线程条件变量为什么要在while体里你遇到什么挫折怎么应对和处理百度三面现场自我介绍项目介绍Redis的特点Redis的持久化怎么做aof和rdb有什么区别有什么优缺点。Redis使用哨兵部署会有什么问题我说需要扩容的话还是得集群部署。说一下JVM内存模型把有哪些区分别干什么的说一下gc算法分代回收说下MySQL的引擎讲一下有什么区别使用场景呢分布式事务了解么反爬虫的机制有哪些方式阿里中间件四面Java中间件一面技术一面考察范围重点问了Java线程锁synchronized 和ReentrantLock相关的底层实现线程池的底层实现以及常见的参数数据结构基本都问了一遍链表、队列等Java内存模型常问的JVM分代模型以及JDK1.8后的区别最后还问了JVM相关的调优参数分布式锁的实现比较技术一面题目1自我介绍2擅长哪方面的技术3java有哪些锁中类乐观锁悲观锁、可重入锁Synchronize等。4比较重要的数据结构如链表队列栈的基本原理及大致实现5J.U.C下的常见类的使用。Threadpool的深入考察blockingQueue的使用6Java内存分代模型GC算法JVM常见的启动参数CMS算法的过程。7Volatile关键字有什么用包括底层原理8线程池的调优策略9Spring cloud的服务注册与发现是怎么设计的10分布式系统的全局id如何实现11分布式锁的方案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和aopSpringmvc的基本架构请求流程。HTTP协议与Tcp有什么区别http1.0和2.0的区别。Java的网络编程讲讲NIO的实现方式与BIO的区别以及介绍常用的NIO框架。索引什么时候会失效变成全表扫描介绍下分布式的paxos和raft算法蚂蚁中间件二面你在项目中怎么用到并发的。消息队列的使用场景谈谈Kafka。你说了解分布式服务那么你怎么理解分布式服务。Dubbo和Spring Clound的区别以及使用场景。讲一下docker的实现原理以及与JVM的区别。MongoDB、Redis和Memcached的应用场景各自优势MongoDB有事务吗Redis说一下sorted set底层原理讲讲Netty为什么并发高相关的核心组件有哪些蚂蚁中间件三面完整的画一个分布式集群部署图从负载均衡到后端数据库集群。分布式锁的方案Redis和Zookeeper哪个好如果是集群部署高并发情况下哪个性能更好。分布式系统的全局id如何实现。数据库万级变成亿级你如何来解决。常见的服务器雪崩是由什么引起的如何来防范。异地容灾怎么实现常用的高并发技术解决方案有哪些以及对应的解决步骤。2019年头条抖音Java 三面一面hashmap怎么扩容怎么处理数据冲突怎么高效率的实现数据迁移Linux的共享内存如何实现大概说了一下。socket网络编程说一下TCP的三次握手和四次挥手同步IO和异步IO的区别Java GC机制GC Roots有哪些红黑树讲一下五个特性插入删除操作,时间复杂度快排的时间复杂度最坏情况呢最好情况呢堆排序的时间复杂度呢建堆的复杂度是多少二面自我介绍主要讲讲做了什么和擅长什么设计模式了解哪些AtomicInteger怎么实现原子修改的ConcurrentHashMap 在Java7和Java8中的区别为什么Java8并发效率更好什么情况下用HashMap什么情况用ConcurrentHashMapredis数据结构redis数据淘汰机制三面约五十分钟mysql实现事务的原理(MVCC)MySQL数据主从同步是如何实现的MySQL索引的实现innodb的索引b树索引是怎么实现的为什么用b树做索引节点一个节点存了多少数据怎么规定大小与磁盘页对应。如果Redis有1亿个key使用keys命令是否会影响线上服务Redis的持久化方式aod和rdb具体怎么实现追加日志和备份文件底层实现原理的话知道么?遇到最大困难是什么怎么克服未来的规划是什么你想问我什么美团内推java高级开发一面二面三面美团内推一面二面三面面试题目美团一面电话自我介绍项目介绍Redis介绍了解redis源码么了解redis集群么Hashmap的原理增删的情况后端数据结构如何位移hashmap容量为什么是2的幂次hashset的源码object类你知道的方法hashcode和equals你重写过hashcode和equals么要注意什么假设现在一个学生类有学号和姓名我现在hashcode方法重写的时候只将学号参与计算会出现什么情况往set里面put一个学生对象然后将这个学生对象的学号改了再put进去可以放进set么并讲出为什么Redis的持久化有哪些方式原理是什么讲一下稳定的排序算法和不稳定的排序算法讲一下快速排序的思想美团二面现场自我介绍讲一下数据的acid什么是一致性什么是隔离性Mysql的隔离级别每个隔离级别是如何解决Mysql要加上nextkey锁语句该怎么写Java的内存模型垃圾回收线程池的参数每个参数解释一遍然后面试官设置了每个参数给了是个线程让描述出完整的线程池执行的流程Nio和IO有什么区别Nio和aio的区别Spring的aop怎么实现Spring的aop有哪些实现方式动态代理的实现方式和区别Linux了解么怎么查看系统负载Cpu load的参数如果为4描述一下现在系统处于什么情况Linux查找磁盘上最大的文件的命令Linux如何查看系统日志文件手撕算法leeetcode原题 22Generate Parentheses给定 n 对括号请写一个函数以将其生成新的括号组合并返回所有组合结果。美团三面现场三面没怎么问技术问了很多技术管理方面的问题自我介绍项目介绍怎么管理项目成员当意见不一致时如何沟通并说服开发成员并举个例子怎么保证项目的进度数据库的索引原理非聚簇索引和聚簇索引索引的使用注意事项联合索引从底层解释最左匹配原则Mysql对联合索引有优化么会自动调整顺序么哪个版本开始优化Redis的应用Redis的持久化的方式和原理技术选型一个新技术和一个稳定的旧技术你会怎么选择选择的考虑有哪些说你印象最深的美团点评技术团队的三篇博客最近在学什么新技术你是怎么去接触一门新技术的会看哪些书怎么选择要看的书京东4面(Java研发一面基础面约1小时自我介绍主要讲讲做了什么和擅长什么springmvc和spring-boot区别Autowired的实现原理Bean的默认作用范围是什么其他的作用范围索引是什么概念有什么作用MySQL里主要有哪些索引结构哈希索引和B树索引比较Java线程池的原理线程池有哪些线程池工厂有哪些线程池类型及其线程池参数是什么hashmap原理处理哈希冲突用的哪种方法还知道什么处理哈希冲突的方法Java GC机制GC Roots有哪些Java怎么进行垃圾回收的什么对象会进老年代垃圾回收算法有哪些为什么新生代使用复制算法HashMap的时间复杂度HashMap中Hash冲突是怎么解决的链表的上一级结构是什么Java8中的HashMap有什么变化红黑树需要比较大小才能进行插入是依据什么进行比较的其他Hash冲突解决方式hash和B树的区别分别应用于什么场景哪个比较好项目里有个数据安全的aes和md5的区别详细点二面问数据库较多自我介绍为什么MyISAM查询性能好事务特性acid隔离级别SQL慢查询的常见优化步骤说下乐观锁悲观锁select for update并写出sql实现TCP协议的三次握手和四次挥手过程用到过哪些rpc框架数据库连接池怎么实现Java web过滤器的生命周期三面综合面约一个小时自我介绍。ConcurrentHashMap 在Java7和Java8中的区别为什么Java8并发效率更好什么情况下用HashMap什么情况用ConcurrentHashMap加锁有什么机制ThreadLocal应用场景数据库水平切分垂直切分的设计思路和切分顺序Redis如何解决key冲突soa和微服务的区别单机系统演变为分布式系统会涉及到哪些技术的调整请从前面负载到后端详细描述。设计一个秒杀系统四面HR面1.你自己最大优势和劣势是什么2.平时遇见过什么样的挑战怎么去克服的3.工作中遇见了技术解决不了的问题你的应对思路4.你的兴趣爱好5.未来的职业规划是什么附带去年头条面经【头条Java后台3面】— 18年十二月份头条一面1.讲讲jvm运行时数据库区2.讲讲你知道的垃圾回收算法3.jvm内存模型jmm4.内存泄漏与内存溢出的区别5. select、epool 的区别底层的数据结构是什么6.mysql数据库默认存储引擎有什么优点7.优化数据库的方法从sql到缓存到cpu到操作系统知道多少说多少8.什么情景下做分表什么情景下做分库9.linkedList与arrayList区别 适用场景10.array list是如何扩容的11. volatile 关键字的作用Java 内存模型12.java lock的实现公平锁、非公平锁13.悲观锁和乐观锁应用中的案例mysql当中怎么实现java中的实现头条二面Java 内存分配策略多个线程同时请求内存如何分配Redis 底层用到了哪些数据结构使用 Redis 的 set 来做过什么Redis 使用过程中遇到什么问题搭建过 Redis 集群吗如何分析“慢查询”日志进行 SQL/索引 优化MySQL 索引结构解释一下B 树MySQL Hash 索引适用情况举下例子头条三面如何保证数据库与redis缓存一致的Redis 的并发竞争问题是什么如何解决这个问题了解 Redis 事务的 CAS 方案吗如何保证 Redis 高并发、高可用Redis 的主从复制原理以及Redis 的哨兵原理如果让你写一个消息队列该如何进行架构设计啊说一下你的思路。MySQL数据库主从同步怎么实现秒杀模块怎么设计的如何压测抗压手段【今日头条Java后台研发三面】—18年金九银十期间一面concurrent包下面用过哪些countdownlatch功能实现synchronized和lock区别重入锁thread和runnable的区别AtomicInteger实现原理(CAS自旋)java并发sleep与wait、notify与notifyAll的区别如何实现高效的同步链表java都有哪些加锁方式synchronized、ReentrantLock、共享锁、读写锁等设计模式工厂模式、单例模式几种情况、适配器模式、装饰者模式maven依赖树maven的依赖传递循环依赖二面synchronized和reentrantLock的区别synchronized用在代码快、方法、静态方法时锁的都是什么?介绍spring的IOC和AOP分别如何实现(classloader、动态代理)JVM的内存布局以及垃圾回收原理及过程讲一下讲一下CMS垃圾收集器垃圾回收的流程以及CMS的缺点redis如何处理分布式服务器并发造成的不一致OSGi的机制spring中bean加载机制bean生成的具体步骤ioc注入的方式spring何时创建applicationContextlistener是监听哪个事件介绍ConcurrentHashMap原理用的是哪种锁segment有没可能增大?解释mysql索引、b树为啥不用平衡二叉树、红黑树Zookeeper如何同步配置三面Java线程池ThreadPoolEcecutor参数基本参数使用场景MySQL的ACID讲一下延伸到隔离级别dubbo的实现原理说说RPC的要点GC停顿原因如何降低停顿JVM如何调优、参数怎么调如何用工具分析jvm状态visualVM看堆中对象的分配对象间的引用、是否有内存泄漏jstack看线程状态、是否死锁等等描述一致性hash算法Redis分布式雪崩场景如何避免?再谈谈消息队列