美团

一面

题目1

请说明进程和线程的区别与联系。操作系统中的虚拟内存是如何实现的?谈谈乐观锁和悲观锁,以及它们在Java中的具体实现(如CAS、Synchronized)。AQS(AbstractQueuedSynchronizer)的原理是什么?请举例说明(如ReentrantLock)。当向一个线程池提交任务时,它的执行流程是怎样的?(考虑核心线程、队列、最大线程、拒绝策略)

介绍一下Redis的持久化机制有哪几种,它们各自有什么优缺点?如何保证缓存与数据库双写一致性?谈谈MySQL的事务隔离级别,以及MVCC是如何在可重复读(RR)级别下工作的。什么是覆盖索引和回表?在使用联合索引时,需要注意哪些最左前缀匹配原则?

请描述一下JVM的类加载过程,以及双亲委派模型。G1垃圾收集器相比于CMS有哪些优势?什么情况下会发生OOM(堆内存溢出),请举例说明几种场景。Java中的强引用、软引用、弱引用、虚引用之间有什么区别?

题目2

1:自我介绍

2:HashMap1.8底层数据结构和put流程

3:jvm底层和OOM发生区域

4:roc调用流程

5:慢SQL调查流程

6:mysql隔离级别和如何实现的,以及MVCC

7:唯一ID,一致性哈希

题目3

Bean的生命周期

Spring怎么解决循环依赖问题

Spring的IOC、AOP

Spring的事务传播机制

事务传播机制的底层实现

TheadLocal的key为什么要设置成弱引用

TheadLocal的value为什么要设置成强引用

TheadLocal怎么防止内存泄漏

TCP的三次握手和四次挥手

TIME_WAIT发生在哪里,以及为什么需要TIME_WAIT

UDP怎么设置成可靠的

votaile 关键字的作用,以及votaile 禁止指令重排的底层实现

解释一下SYN的泛洪攻击

怎么防御泛洪攻击

题目4

1. ThreadLocal在什么情况下会导致out of memory?

2. 阿里规范中为什么要求用static来修饰ThreadLocal变量?

3. 存储100万数据时,选HashMap还是ConcurrentHashMap?

4. 多线程情况下使用HashMap会导致什么问题?

5. HashMap扩容时需要注意什么?

6. 仿大众点评项目中缓存空值具体是怎么实现的?

7. 布隆过滤器的误判率大概是多少?

8. 仿大众点评项目中,类似微博大V发博客的场景,使用推模式还是拉模式?大粉丝量时推模式会有什么问题?

9. Redis分布式锁为什么要使用Lua脚本?纯Java代码为什么不可以?

10. 为什么选用Websocket?除了Websocket,是否考虑过其他协议(如谷歌的相关协议)?

11. 分布式环境下用schedule的关单会有什么问题?

12. 若系统扩大为分布式且单量增大,解决定时任务问题的思路有哪些?

13. 日志框架用的是log4j还是log4j2?日志应在哪些地方重点打印?

14. 碰到老应用、老系统日志不全时,如何最快地加上基础日志打点?

15. 为什么选用Mybatis plus而不选用JPA?

16. 线程池在系统里用在哪些位置?

17. 线程池的核心参数有哪些?从核心线程数达到最大线程数需要什么条件?

18. 在优惠券秒杀场景下,阻塞队列应设置多大?

19. RabbitMQ与Redis stream的推流最大区别是什么?

20. 仿大众点评项目中,最重要的几张表是哪几张?订单表应加什么索引?

21. MySQL的日志指的是哪些?集群模式最主要依赖的日志是什么?

22. 生产环境中如何避免主从同步延迟带来的故障?

23. JDK 11、17有哪些新特性?

题目5

说一下 JVM 的内存结构(运行时数据区)有哪些?每一块的作用是什么?

Java 中对象的内存分配过程是怎样的?对象分配在堆还是栈?

什么是栈上分配、逃逸分析?是否可以让对象不分配在堆上?

什么情况下对象会进入老年代?如何判断对象“是否存活”?

直接内存(Direct Memory)是什么?你在什么场景下用过它?

JVM 中常见的垃圾回收器有哪些?它们的适用场景?

Serial、ParNew、CMS、G1、ZGC 有什么区别?你项目中用的哪一个?为什么?

Minor GC 和 Full GC 有什么区别?分别在什么情况下发生?

如何避免或减少 Full GC?有哪些排查方法?

GC Roots 有哪些?JVM 是怎么判断一个对象是否需要回收的?

题目6

ArrayList和hashmap扩容机制

Java并发容器和锁

jvm参数设置 --- 堆内存和垃圾回收器

如果新生代的垃圾回收一直清不到0,怎么解决?

full GC

垃圾回收机制

类加载机制和双亲委派机制

IOC ---  还有IOC相关的,忘记是什么了

Bean生命周期

MySQL索引的注意事项、事务

MVCC

当前读和快照读

Redis数据结构

RocketMQ与kafka

rocketmq有哪些主要部分

消息重试

消费者的消费模式

消费者如何保证幂等

RocketMQ消息有序吗?

http状态码,对应着是哪个环节出现问题

TCP三次握手和四次挥手 为什么挥手是四次?

lInux查最近的日志 --- tail -f | grep XXX

linux其他命令 查看进程 ps

题目7

1.自我介绍

2.实习拷打

3.讲讲javac过程,结合编译原理的东西详细分析

4.讲讲你写的一个java代码跑起来的过程,例如编译运行和解释运行

5.面向对象的几个特性和举例子说明

6.springboot容器启动过程

7.讲讲list,map,set几种基本数据结构和使用场景

8.假如你用一个arraylist,你已经知道里面会存1w条数据了,那该怎么办

9.collections下的加锁和数据结构本身例如chw的加锁操作有什么区别

10.手撕SQL:

员工编号-id,部门-dep,薪酬-salary

求找到所有薪酬大于部门平均工资的员工

要求多种解法

不知道想要哪种,除了常规的,还写了一种 avg(salary)over(partation by dep)as avgSalary这种

11.手撕链表中删除重复元素

12.讲讲大模型中的知识蒸馏是怎么做的

13.整体介绍介绍你对于agent,work flow,rag,mcp,a2a的理解

题目8

  1. 看你简历上写了几个项目,可以挑一个你觉得最有代表性的介绍一下吗?

  2. 我看你提到了mcp,能解释下它是什么吗?主要起什么作用,在什么地方起作用?

  3. 我们来聊聊基础吧,HashMap是线程安全的吗?为什么?

  4. StringBuffer和StringBuilder,它俩有什么区别?

  5. TCP和UDP,能分别说说它们的特点和常见的应用场景吗?

  6. 来一道概率题吧:现在你只有一个能生成1到5随机数的rand5()函数,怎么用它来实现一个能生成1到7随机数的rand7()函数?(讲了大体思路没讲具体思路 估计死了)

  7. 你之前有做过全栈开发吗?

  8. 我们来深入聊聊MySQL索引。能介绍一下吗?为什么它通常用B+树来实现?B+树的每个节点里都存了些什么?另外,一张表里可以有几个聚簇索引?(把我问死了)

  9. 来个系统设计题。假设我们要搞一个秒杀活动:晚上八点开抢1000台手机。你会怎么设计这个秒杀系统?

  10. 你觉得,一个好的Prompt通常需要包含哪些要素?

  11. 在我们平台里,Agent模式和Ask模式,它俩有什么区别?

题目9

hashcode equal什么时候需要重写

hashmap原理

hashmap是线程安全的吗

不安全的话用什么?他的原理是什么样的

线程池使用过吗?怎么用的?什么场景?

spring事务怎么做到的

spring事务传播机制

mysql使用

mysql怎么建索引?怎么判断是否要建索引

mysql索引失效?

mysql慢查询排查

题目10

1.自我介绍

2.项目难点有什么

3.Redis常用数据结构有哪些

4.Redis缓存击穿、缓存雪崩是什么,解决方案

5.equals和hashcode

6.TCP三次握手

7.MySQL索引类型有什么,索引失效场景

8.一个主线程正在进行,现在有个子线程,怎样才能让主线程停止,等到子线程执行结束之后再恢复运行

9.创建线程的方式有哪些

10.平时怎么用AI学习的

题目10

1.hashmap如何解决哈希冲突,红黑树化为何阈值为8

2.cglib和jdk代理区别,哪个性能好

3.联合索引失效 如何改进

4.synchonized reentrantlock区别

5.mq如何保证可靠性,顺序性

6.ArrayList LinkedList区别

7.OOM怎么排查

8.线程池核心参数 原理 四种拒绝策略 举个例子

9.缓存穿透 雪崩

10.分库分表 附属表 基因法  优缺点

11.mysql隔离级别 可重复读怎么避免幻读

12.G1怎么避免内存碎片

13.Mysql oracle区别

13.用过哪些AI,用途,工作中遇到别人代码bug怎么办

14.手撕 二叉树层序 最长重复子数组

题目11

1、项目、实习拷打 2、violate关键字作用 3、如何保证线程安全 4、支持原子性操作的方法 5、简述Spring的ioc和aop的核心思想 6、mysql的acid特性 7、慢sql如何优化 8、explain关键字解释 9、Redis常用数据结构以及应用场景 10、WebSocket的工作原理 11、如何优化你项目中使用的WebSocket的业务 12、FTP中的keep-alive 13、TCP特性 14、UDP和TCP应用场景,如何使得UDP可靠 15、对前端的了解,对vue的认识 16、java中Sort的原理

题目12

1.问实习内容 2.并发工具类 3.介绍项目背景 4.项目框架设计 5.项目如何面对高并发场景 6.线程池八股 7.项目接口和高并发 8.手撕:合并两个有序数组 9.Mysql日志 10.MVCC

题目13

  1. 自我介绍,过往项目经历、实习经历
  2. 日常怎么运用 ai 大模型
  3. 讲一下 java 8 lambda 表达式
  4. osi 7 层结构模型,每层的作用是什么
  5. tcp 和 udp 的区别,tcp 超时重传、流量控制机制
  6. 怎么运用大模型,为探店博主或者商家提供服务,包括根据用户上传的图片或关键字,生成一个基础的探店笔记(追问 prompt 工程、怎么解决幻觉)
  7. 讲实习遇到的困难

题目14

  1. 自我介绍,特别问了AI大模型在你学习过程中给你的帮助
  2. 栈和队列的区别;生活中站和队列分别有什么应用场景?
  3. Lambda表达式的作用和使用场景?Lambda表达式和匿名内部类相比有什么优势?
  4. 解释消息队列的消息投递机制,比如“至少一次”、“至多一次”、“恰好一次”?“至少一次”投递机制会出现什么问题,怎么解决?
  5. 设计一个考勤管理系统,如何保证考勤记录的真实性?如何防止考勤过程中用户信息被人篡改?
  6. 利用AI大模型,为新入驻的商家提供一个“7×24小时的AI导师”,可以回答商家提供的各类问题? 追问:如果线上发现模型返回的JSON经常缺字段或格式错乱,导致下游服务解析失败,如何从Prompt设计、模型参数或后处理等方面系统性解决这个问题? 追问:后处理阶段发现模型生成的内容与预期字段不匹配,你会如何设计检测机制来发现和解决这些问题?
  7. 描述一次你成功识别并解决了一次潜在的、尚未显形的问题,你是如何预见并采取行动的?

题目15

1、自我介绍+项目拷打 2、对于分库分表,是按照什么分的 3、为什么要把数据分开存储,不能都存到分布式数据库里吗?分布式数据库和普通数据库区别是什么 4、当数据库表超过2千万之后,处理方案是什么? 5、有学过计算机相关的课程吗,对哪一门比较熟悉(这里我说网络) 6、说一下滑动窗口的原理 7、讲一下三次握手和四次挥手 8、提到close_wait 和 time_wait,说一下这两个状态过多的影响,以及哪个危害更大。 9、阐述一下类加载的过程,包括具体加载到什么地方 10、元空间和方法区会存放哪些信息 11、有使用过AI吗?现在大模型的幻觉问题比较大,平时处理方法是什么? 12、知道RAG吗?阐述一下Rag原理,以及它是如何处理大模型幻觉问题的 13、说一下未来的职业规划?如果工作内容不符合你的规划呢? 14、知道大模型的生成数据流推送的方案吗?就是如何逐字输出的? 15、WebSocket 和 SSE 的区别是什么? 16、单工一定比全双工性能要好吗? 17、对于分表后的主键ID是怎么处理的

题目16

15min 实习业务介绍及问答 聊聊 RAG 和 Embedding?它们是啥,有啥用? 你是怎么学大模型的? 你觉得大模型能在哪些地方实际用起来?

10min 讲讲悲观锁和乐观锁? 消息队列有啥用? RocketMQ 和 Kafka 有啥区别?底层实现上有什么不一样? Kafka 消费消息比 RocketMQ 快吗?为啥? 顺序消费有啥要注意的?

15min 布隆过滤器一般用在哪?原理是啥? MySQL 的索引是啥原理?有啥用? B+ 树和 B 树有啥区别? MySQL 的隔离级别有哪几种?分别怎么实现的? 设计一个外卖流程:用户下单、商家接单、骑手派单,大概是个啥过程?会用到哪些数据结构和算法?

题目17

  1. redis为什么快,性能为什么高?
  2. redis里面基本的数据类型有哪些?
  3. 一些数据类型也是redis优化之后导致redis快的原因,能够就其中一个redis数据结构的优化来举出一个实际的例子吗?
  4. 你能先描述一下跳表的数据结构长什么样子?
  5. 跳表空间复杂度是多少?
  6. 说说对redis事务的理解?
  7. 说说对mysql事务的理解?
  8. 说一下redis的持久化方案把?
  9. redis主从同步主要采取哪种形式?
  10. redis有几种部署模式?
  11. 你觉得集群模式和哨兵模式的主要区别是?
  12. 集群模式中如何出现一个redis热点key的情况,怎么做防止节点单点压力过大?(我回答是业务层面解决,每个节点都缓存热点key,用一个哈希集合存储热点key,直接快速判断是否走本地查询,而不是哈希索引节点)
  13. 说一下mysql的隔离级别以及每种隔离级别下可能出现的问题?
  14. 说一下可重复读是怎么解决不可重复读的问题?
  15. 说一下什么是聚簇索引?
  16. 聚簇索引和聚簇索引有什么区别?
  17. 数据结构的区别在哪里?都用的是B+数吗?
  18. B+数的结构原理是什么?
  19. 什么是覆盖索引?
  20. 覆盖索引有什么好处?
  21. 最近的话,AI大模型比较火,你有没有学习AI大模型相关的原理,大模型微调了解过吗?

题目18

1.介绍多态,重载、重写底层如何实现 2.野指针和悬挂指针出现场景,产生什么后果,如何解决 3.介绍智能指针,什么操作会导致共享指针引用计数加1、减1 4.如果想把一个智能指针的释放控制在某一个线程内应该怎么做?这个我不会,面试官说要让指定线程一直持有着它,然后再释放,我还是没太懂 5.对堆和栈的理解 6.申请堆空间的方式,两种方式的区别 7.STL库有了解吗?vector有了解吗? 8.除了添加元素时容量不够会扩容,还有什么时候会扩容?这个我不知道,面试官说还有一个用来动态扩容的容器阈值,当前申请的内存超过阈值时会提前申请。 9.vector底层数组在内存分配上是什么特性 10.还有其他内存分配方式吗 11.为什么有epoll,epoll的水平触发和边缘触发 12.tcp三次握手 13.对于客户端和服务器而言,是怎么认出这个tcp连接的?我当时一直没get到面试官的意思,现在想想应该是想让我回答四元组标识一条连接吧? 14.客户端和服务器的fd都是什么时候生成的 15.连接队列满了会给客户端返回什么?不清楚,面试官说reset 16.进程和线程。我当时有点昏头了,说进程不能很好的利用多核cpu,面试官说多进程也可以用多核 17.进程间通信 18.linux排查问题的相关命令:查网络连接、查网络连接个数、grep反向查找

米哈游

一面

题目1

  1. 自我介绍
  2. 实习经历
  3. MongoDB和MySQL选型上有过考量吗
  4. Redis分布式锁
  5. Redis怎么做消息队列,可以使用什么数据结构
  6. 怎么用Redis的数据结构实现一个延迟消息队列
  7. 项目经历,页面查询优化怎么做
  8. 游标和offset limit
  9. 订单数据同步的数据一致性怎么体现
  10. Redis在这里的作用
  11. MySQL的事务隔离级别
  12. MySQL三种日志
  13. 二阶段提交

饿了么

一面

题目1

你用了优先队列(Priority Queue),这种做法本质上属于哪类排序?

该算法的时间复杂度和空间复杂度各是多少?

除了优先队列+虚拟节点方案,你有没有想到其他更优解?

对“基本有序”数组,哪种排序最优?为什么?

请讲解快速排序的核心思想与流程。

如何快速从无序数组中找出第K大的元素?(如第3大、第10000大等)

最优解可否用堆?可否用快速选择(Quickselect)?

用3–5分钟重点介绍一个你参与度高、技术含量突出的项目。

你了解哪些开源RPC框架?

请详细讲一下阿里Dubbo的注册/发现机制、核心功能及优缺点。

令牌桶限流原理是什么?关键点在哪里?

你还知道哪些限流策略(固定窗口、滑动窗口、漏桶等),它们各自优缺点是什么?

你对Spring源码做过哪些研读?关注了哪些模块?

在Spring MVC中,IOC容器的两个最核心职责是什么?

能否详细讲解Spring容器的启动、类加载、Bean定义解析、依赖注入全过程?

JVM类加载双亲委派流程是怎样的?如何打破它?

请描述Java内存区域:堆、栈、方法区(永久代/元空间)、本地方法栈等。

哪些区域可能抛出OutOfMemoryError?

为什么Java 8将永久代改为元空间?它们在内存上的区别与优劣?

为什么要把String设计为不可变?

StringBuilder与StringBuffer有何区别?

反射的优点和缺点有哪些?

携程

一面

题目1

2.项目拷打

a.把项目部署在服务器上你会怎么做?

b.把项目进行打包要打包成哪几个部分?怎么进行打包?前端后端分哪几个部分?

c.跨域问题怎么解决?

d.实时私聊功能怎么做的?

e.假如一下子有大量消息的话,服务端要怎么保证消息转发的实时性和完整性?

3. MySQL索引的原理?

4. B+树和B树的区别?

5. Redis怎么实现分布式锁?

6. Redis在应对高并发请求场景下有什么应对策略?(一开始说了搭建集群来做分流,后面面试官提示说要从令牌桶技术限流角度出发)

小米

一面

题目1

  1. 开场做了自我介绍,并详细介绍了项目经历

  2. 聊聊你对Java集合框架的理解吧。ConcurrentHashMap在1.7和1.8里有啥不一样的地方?

  3. Java内存模型(JMM)能介绍一下吗?GC这块呢,讲讲内存回收?对了,逃逸分析了解不?

  4. Java并发编程里的锁,你是怎么理解的?CAS底层是怎么实现的,能说说吗?

  5. 拦截器(Interceptor)和过滤器(Filter),它俩有啥主要区别?

  6. SQL里 COUNT(*)、COUNT(1) 和 COUNT(具体列名),它们之间有什么区别?

  7. 用Redis做延时消息,有什么实现方案吗?

  8. HTTPS的加密和认证流程,还能想起来吗?能详细讲讲这个过程不?

  9. 假如有个特别大的日志文件,在Linux环境下,你会用什么命令去看它的内容?

阿里

一面

题目1

1.优惠卷秒杀模块的技术亮点

2.处理线程安全问题的锁分为哪几类,一般是怎么使用的

3.介绍一下偏向锁和自旋锁

4.说一说你了解的加密算法

5.聊一聊你所了解的缓存

6.缓存一致性问题

7.在读取缓存时可能出现的相关问题

8.讲一下布隆过滤器的特点

9.布隆过滤器存在的假阳性的问题怎么进行优化

10.分布式系统的设计考量

11.分布式锁的大概原理

12.微服务的工作流程

13.微服务的服务数量很多的情况下如果某一个服务突然挂掉了可能引发微服务的雪崩,该怎么解决

14.限流算法的了解

15.CAS和AQS的原理

题目2

\1. 聊聊 Java 线程池的参数?线程池是怎么执行任务的?

\2. 建 MySQL 索引时要考虑啥?用 MySQL 的时候,要关注哪些指标?

\3. Redis 是怎么做持久化的?

\4. 对 AI 了解多少?了解 Milvus 吗?(这块我讲了一堆理论,但面试官没怎么追问)

\5. JVM 垃圾回收有哪些算法?CMS 和 G1 有啥区别?

\6. 为啥要用分布式锁?什么场景下会用?

\7. 讲一个项目里解决问题的经历?

\8. 你平时是怎么学新东西的?

题目3

1.自我介绍 先问的八股 2.简单描述一下常用集合类的适用场景及线程安全性 3.ArrayList 和 HashMap的增删改查复杂度 4.ReentrantLock 和 synchronized的区别 reentrantLock 的尝试机制忘了说了 5.mysql 事务 6.举个幻读的例子 7.mysql中建索引要注意什么 8.举个例子说明下什么是回表 9.如何避免回表 10.分库分表问题 面试官提示 : 尽量打散 结合业务需求分表 11.缓存雪崩击穿穿透问题

题目4

自我介绍

讲实习 35min toc场景如何确保DB和REDIS尽量实时? 怎么避免缓存雪崩和击穿? 假如列表查询时数据量极大需要分页怎么办?

八股 10分钟 hashset讲一下 threadlocal讲一下

场景15分钟 设计一个智能会议总结系统 大致流程是前端把语音发到后端,调用工具转文字,调用大模型进行总结,再发回前端

腾讯

WXG一面

题目1

1. 实习干的东西

2. 权限管控怎么做的

3. 权限管控是怎么标识的用户

4. 怎么保证用户信息不会被传输过程篡改

5. https怎么保证的加密传输

6. 线程和进程的区别 进程能访问其他应用的内存吗 为什么

7. 线程和协程的区别

8. 项目里为什么要使用登录 qq登录怎么做的 过程是怎样的 qq是怎么加密的中间数据

题目2

Canal 和 Kafka 之间是怎么交互的?用的什么协议? Kafka 的实现原理是啥? ES 为什么这么快?讲讲倒排索引,还有文档列表是啥意思? 资源隔离是怎么实现的? K8s 的部署和滚动更新流程是怎样的?怎么在更新的时候保证服务不中断? 有个下载文件的问题(具体忘了) 操作系统启动时都干了些啥? 聊聊操作系统的内存管理和进程管理? 给你一大堆 IP 地址,怎么找出哪个网段下的 IP 最多? 我答了个 O(n) 的方案,面试官追问怎么避免哈希冲突,有没有更好的方法,还问了哈希冲突最极端的情况怎么办。 又追问,如果想找 Top 3 怎么办?要是内存不够,又该怎么找 Top 10?

题目3

  1. 自我介绍
  2. 开篇面试官介绍了一下这次面试的流程
  3. HashMap和HashTable的区别?
  4. 接T3,针对HashTable的问题,有没有解决方案?(ConcurrentHashMap)
  5. 线程和进程的区别?
  6. 接T5,通信方式上有什么区别?
  7. MySQL索引结构?
  8. 接T7,B树和B+树的区别是什么?
  9. 接T8,为什么说B+树更好做范围查询?
  10. MySQL事务隔离级别?
  11. MVCC
  12. 索引失效的情况都有哪些?
  13. Redis持久化方案?
  14. 缓存雪崩、缓存穿透、缓存击穿
  15. 讲讲TCP的三次握手和四次挥手
  16. 说说Linux的常用命令?
  17. 有没有用过Docker?说说Docker的常用命令?有自己构建过Docker镜像吗?

题目4

你对腾讯云智的产品有哪些了解?有没有使用过相关的服务? Java 中的集合框架有哪些?HashMap 和 ConcurrentHashMap 的区别是什么? 谈谈 Java 中的多线程,线程池的核心参数有哪些?如何设置合理的线程池参数? Spring IoC 和 AOP 的原理是什么?在项目中是如何使用 AOP 的? Spring 事务的传播机制有哪些?你在实际开发中遇到过哪些事务相关的问题 Java 中 synchronized 和 Lock 的底层实现原理有何区别?谈谈你对偏向锁、轻量级锁、重量级锁的理解 深入分析 ThreadLocal 的内存泄漏问题,如何避免?在分布式场景下如何实现类似 ThreadLocal 的功能? Redis 的持久化机制有哪些?RDB 和 AOF 的优缺点及适用场景是什么?如何解决 AOF 重写时的性能问题? Redis 的集群方案有哪些?哨兵模式和 Cluster 模式的区别是什么?Cluster 模式下槽位迁移的过程是怎样的? RabbitMQ 的交换机类型有哪些?详细说明 Topic 交换机的路由规则,如何保证消息的可靠性投递(从生产者到交换机、交换机到队列、消费者消费三个环节分析) 单例模式的实现方式有哪些?哪种方式是线程安全的? 在项目开发中,你是如何进行代码调试和排错的?有什么技巧吗? 工厂模式和抽象工厂模式的区别是什么?在什么场景下会使用抽象工厂模式? 工厂模式在实际项目中有哪些应用?你觉得使用工厂模式有什么好处? Java 中的异常处理机制是怎样的?try-catch-finally 块的执行顺序是什么? 谈谈你对 Java 内存模型的理解,volatile 关键字的作用是什么? 数据库的分库分表有哪些方案?各自的优缺点是什么? 在进行 Java 开发时,你是如何保证代码质量的?会使用哪些工具?

二面

题目1

  1. 自我介绍

  2. 有用过MQ对吧,那你说说怎么解决消息重传的?

  3. 你是怎么做消息幂等性处理的?

  4. 接T3,如果说Redis的key已经存入了,但是刚好消费者宕机了,怎么办?

  5. 建立索引的SQL语句是?

  6. TLS握手过程

  7. 手撕1:单链表有一个指针指向任意一个节点,怎么删除这个指针指向的节点,如1→2→3→4,传入2,删除2,没有头指针(回答了更改节点值,next设置为next.next,追问怎么删除最后一个节点,不会,换了道题)

三面

题目1

  1. 自我介绍
  2. 拷打项目
  3. 拷打实习
  4. 我现在有一个student表,我要对name简历索引,sql语句怎么写?
  5. 主键索引和普通索引有什么区别?
  6. 为什么非聚簇索引要回表?
  7. MySQL隔离级别?
  8. MySQL主从同步原理?
  9. binlog日志存的是什么?
  10. Redis缓存雪崩是个什么概念?怎么解决?
  11. Redis持久化方式?
  12. HTTP报文格式?
  13. HTTP和HTTPS有什么不同?
  14. TLS握手过程?
  15. 为什么是非对称加密和对称加密结合使用?能不能只使用一种?
  16. 面向对象三大特性
  17. 我现在有一个Java源代码,比如说叫xxx.java,他是如何变成一个二进制文件的能够让机器运行他的?这个中间的过程是怎么样的?
  18. JVM的作用是什么?
  19. 进程和线程的区别?
  20. 有没有了解过协程?跟线程的区别是什么?
  21. 为什么说协程为什么更轻量?
  22. 二进制文件加载进内存,他的分布是怎么样的?
  23. Linux上怎么看机器的负载?
  24. top命令哪些参数表示负载?
  25. Linux怎么看cpu的核数?
  26. Linux怎么查看当前目录占用了多少空间?
  27. 查看当前服务器建立的tcp连接,用什么命令?
  28. tcp滑动窗口机制是怎么样的?
  29. time_wait状态是什么意思?
  30. 为什么是四次挥手?
  31. 三次握手是怎么实现的?中间的ACK和SYN是怎么合并的?
  32. 用过docker吗?怎么做到容器间隔离的?
  33. 怎么构建docker镜像?
  34. 有了解AI吗?大模型训练过程是怎么样的?
  35. 有没有了解过MCP?
  36. 使用过什么AI工具?

中兴通讯

题目1

1、两段实习拷打,没手撕;

2、如果你想做出海业务你会想怎么去因地制宜设计架构;

3、redis大key对于cpu和网络流量的影响;

4、redis跳表结构;

5、mysql的b+树结构,mysql的FULLTEXT索引是否能帮助进行模糊查询,这个索引和es直接查询区别在哪;

6、sql语句执行顺序;

7、线程池原理;

8、Hashmap结构和扩容机制;

9、Java开发中用到的同步机制;

10、rpc调用链路中怎么保证分布式事务的最终一致性;

11、谈谈kafka怎么保证消费的一致性和顺序性还有可靠性;

12、说说gc收集器,说说怎么排查gc日志;

13、说说Java开发过程你用到的设计模式;

14、说说你简历写的慢sql排查思路;

15、死锁检查,银行家算法;

16、jvm结构;

17、JNA怎么保证不内存泄漏;

18、OOM常见情况;

19、linux大页;

20、拦截器和过滤器;

21、一致性协议还有相关的选举机制;

22、redis缓存雪崩穿透击穿场景和解决方法;

23、常见的哈希冲突,ThreadLocal怎么解决哈希冲突;

24、怎么优化提示词生成效果;

25、怎么写规则引擎;

26、你常用的设计模式;

27、类加载机制和双亲委派;

28、数据库三大范式;

29、2pc,3pc,tcc,seata;

30、最大堆最小堆是啥样子的,红黑树原理,堆排序过程。

科大讯飞

题目1

.自我介绍

2.问了一下实习的东西

3.问了一下Java中那些组件和技术学的好(我回答了Nacos,Sentinel,RocketMQ,Zookpper,Dubbo,Redis,Caffein这类的)

4.Java中的封装和反射的区别(这里建议回答为什么有封装了还需要使用反射,要更了解底层,比如要回答反射的一些作用,依赖注入这类的,要回答反射使用的一些例子(比如反射是用于动态代理,为什么是动态的?举例子),后面还问到了设计模式,我说到了代理模式(AOP),但是面试官说没有这种设计模式,最后说了一下工厂模式,但是没了解过工厂模式底层怎么使用到反射)

5.反射运行时灵活,怎么体现的?(最好说依据,举例子)

6.工厂模式底层怎么使用到反射,为什么这么使用

7.说一下Mysql的事务怎么实现的(我回答了锁)

8.Java里面有哪些锁

9.事务的特效(ACID)

10.说一下ACID是什么

11.你知道Redis也有事务,redis的事务跟Mysql的事务有什么区别(我不会)

12.问了一下毕业时间,有没有考研打算,说一下自己的职业规划,往什么方向发展,感兴趣什么,想从事什么职业

影石

题目1

1.自我介绍 2.介绍一下学校情况和学的语言和框架

  1. 线程池的四种类型 , 核心参数 4.单线程池的应用场景 5.同步的一些方式 6.reentranLock和synchronized的区别 7.各自怎么来进行同步过程,contional的sign()和await(); 8.correntHashMap , copyonWrite 9.ArrayList的扩容过程,复制过程是底层的system.copy(); 10.容器快速失败过程和原理(就是遍历的时候被修改) 11.TCP和UDP的区别和各自应用场景

SOUL

自我介绍 实习拷打:为什么用线程池,用了什么线程池?有什么指标吗?提升了多少?为什么用策略模式和工厂模式?还有哪些难点? spring 的模块有哪些? IOC, AOP,DI分别指什么? spring bean生命周期 线程池有哪些优点,池化 mysql事务有哪些隔离级别 一条sql语句如何执行的 redis有哪些数据结构,使用场景 redis哨兵如何选举, redis持久化机制

滴滴

题目1

  1. 自我介绍。
  2. (项目) 聊聊你们是怎么防止单点故障的?
  3. (项目) 具体讲讲那 10 万条数据是怎么处理的?
  4. 线程池有哪些核心参数?它具体是怎么跑的?
  5. 线程池的核心参数,你一般都怎么设?特别是核心线程数和最大线程数。
  6. synchronizedLock 有啥区别?要是碰到异常,它俩分别会怎么样?
  7. JVM 的运行时数据区都包含啥?分别介绍一下?
  8. MQ 一般都用来干嘛?除了削峰填谷还能干啥?为啥要用 MQ?
  9. MySQL 优化,除了加索引还有别的招吗?
  10. 介绍下数据库的隔离级别?
  11. 讲讲缓存穿透?怎么解决?布隆过滤器具体怎么实现的?有啥特点?
  12. 手撕算法:10 万个数里找出最小的 10 个(用小顶堆)。
  13. 以后有什么规划?

百度

一面

题目1

1. Redis如何实现高可用

2. 跳表查找,删除时间复杂度

3. wal log断电如何解决

4. wg.Add() 和 wg.Add(1)区别是什么

5. wg里面,一个协程挂了,如何操作: 捕获panic,recover,发送错误,结束

6. 线程新建,切换的开销体现在哪里

题目2

反射是啥,那些地方使用了

equals和==的区别

重写equals要注意什么

ThreadLocal、数据结构、内存泄露

B树和B+有什么区别

联合索引是什么?什么情况下会失效

手撕SQL:我记得不难,一个group+order

线程池参数有哪些?平时怎么使用的?

线程池的submit和excute有什么区别

spring声明式事务如何用?什么时候失效?

死锁是什么?怎么避免

我们要缓存一个接口的结果,key要有方法名和参数,太大了怎么办

布隆过滤器是什么,数据结构、原理

缓存穿透和缓存雪崩

垃圾回收有哪些方法

JVM的分代收集介绍一下

快排的原理?是稳定排序吗?

git怎么使用?

Stream会用吗?

题目3

JMM Java内存模型

mysql 索引 有哪些

排序算法有哪些

linux命令 查看进程信息命令,查看端口命令

你知道哪些设计模式,分别举例说明

三次握手

生产者消费者

垃圾回收算法

抽象类,接口,普通类的区别

重载和重写

生产者消费者的原理和过程

题目4

进程和线程的区别

进程间的通讯方式

线程间的通讯方式,多个服务,单服务

Linux常见命令 ,搜索等

Linux通讯命令,通讯原理是什么

tcp三次握手,为什么必须要三次

hashmap底层原理,有哪些线程安全的map

答concurrenthashmap,问底层原理,怎么加锁的

springboot启动注解是什么,内部的四个实际注解讲一下

MySQL事务,事务特性。

深挖索引,联合索引,ABC  BC  AC 怎么走索引,索引下推是什么,索引优化查询命令各个字段讲一下

拷打实习,怎么加的索引,什么情况下索引失效,举例子,做什么业务,代码库是什么,怎么上线打包部署的,全程拷打真实性和个人收获,实习做的东西也都用上了,能和面试官聊起来,感觉加分挺多的。

做题 一道sql多表联合查询,一道算法

题目5

自我介绍 介绍一下实习项目 如何使用乐观锁解决超卖问题的 乐观锁和悲观锁的区别,介绍一下 redis缓存穿透、缓存击穿、缓存雪崩问题及解决方案 在高并发场景下设计一个点赞系统 使用redis存储点赞数据,数据库怎么存?何时落库,落库的时候是不是也要考虑分批 redis数据持久化方式及区别 介绍单例模式的两种实现及区别 简单工厂模式和工厂方法模式

题目6

  1. 自我介绍
  2. 实习拷打
  3. 怎么对mysql进行优化
  4. 怎么对十亿级别的线程和进程数据进行管理
  5. 现在都是分布式系统,怎么保证我们获取的数据是最新的

题目7

  1. 自我介绍
  2. 知道这是测开不就投?-知道,不管了
  3. 说一下你实习中的Redis缓存优化怎么做的
  4. 你怎么去测试这个
  5. 订单数据同步说一下
  6. 数据一致性怎么说
  7. 怎么测试,测试有哪些思路
  8. 策略模式取消订单,对于这个功能你会怎么测试
  9. Redis的数据结构你知道多少,分别对应哪些场景可以使用
  10. MySQL的事务特性
  11. MySQL并发事务问题,隔离级别
  12. 做一道算法题--股票的最佳购买时间
  13. 写一个SQL--给定订单表(用户id、订单id、产品id,产品对应金额,购买时间),查询在今天每个用户购买每个产品的金额

二面

你们用dubbo是吧?你知道netty吧?

接口幂等

kafka和RocketMQ的区别?

分布式链路追踪的原理:

Mybatis的原理、如何和mysq交互的?

count(*)和count(字段)的区别、效率

linux信号是什么:我举例kill命令

kill命令具体是干什么的

讲解一下这个题目:

用户在搜索框的时候搜索,会有提示词条,如何实现:我说前缀树等

反正就一直讨论这个搜索问题

题目2

mq如何防止丢失

mq如何防止重复消费

消费端如何保证消息不重复消费

redis实现分布式锁需要注意哪些?

redis 会删除错锁吗?

注解是如何实现的,原理

反射原理?在什么阶段?

lombok注解的实现原理?什么机制?在什么时候运行的?

java 数值上下界的越界,你怎么理解?long类型的上界赋值给int类型,会怎么样?

你怎么理解幂等?

你开发了一个接口,如何保证幂等

数据库的一条数据,多个线程并发修改,用canal如何保证写到es是对的呢?

加密,签名,摘要分别是什么?使用场景?摘要用的私钥还是公钥验签?

题目3

自我介绍 介绍一下最近的项目,做了什么?解决的问题,如何解决的, 大模型的上下文长度是有限的,如何解决的 大型项目还是会有很多的上下文,这种情况怎么解决 可不可以分步骤做?一步一步压缩上下文, MCP了解多少 MCP server,client有没有开发过 AI还了解多少?还参与过什么ai项目 文本相似度怎么计算的? POI搜索是如何实现的,可不可以使用大模型来优化一下 可不可以通过意图识别,找相关数据,在数据层面做好 计算机网络了解吗?websocket底层是怎么做的 广播和单播分别指什么 设计一个生产者消费者模型,生产者生产不同类型的消息,消费者消费自己订阅的类型的消息

快手

一面

题目1

消息队列如何实现功能解耦和压力分散?

延迟队列是如何处理未完成任务的?

整个流程的QPS或容量预估是多少?是否有进行性能测试?

缓存与数据库的一致性如何保证(同步策略、定时任务间隔等)

JVM垃圾回收 简述JVM的垃圾回收机制(分代回收、可达性分析)?

有哪些垃圾回收算法(标记清除、标记整理等)?

不同垃圾回收器(如CMS、G1)的特点和区别?

多线程与锁 synchronized和volatile的区别?

ReentrantLock的公平锁与非公平锁实现原理?

CAS机制在锁中的应用?

集合框架 HashMap和ConcurrentHashMap的区别?

ConcurrentHashMap的分段锁机制(JDK 1.8前后变化)?

MySQL MySQL索引的底层数据结构(B+树 vs B树)?为什么选择B+树?

默认的事务隔离级别是什么?如何解决幻读问题(间隙锁)?

Redis Redis为什么比数据库快(内存操作、IO多路复用)?

Redis高可用方案(集群、哨兵模式)?

数据分片(Sharding)如何实现?节点间如何通信?

操作系统/网络

HTTP请求处理流程 从客户端发起HTTP请求到服务端响应的完整过程(DNS解析、TCP连接、报文拆解等)?

服务端架构中如何接收和处理请求(Web容器、业务逻辑分层)?

消息队列

RabbitMQ vs Kafka 为什么选择RabbitMQ而不是Kafka?两者在高并发场景下的差异?

题目2

1、Kafka,raft一致性协议,选举过程;

2、慢sql优化方式;

3、mysql的bufferpoll;

4、优化器按照什么指标决定走不走索引;

5、你怎么去解决深分页,其实这个感觉无法避免回表的,只是回表数据大小的问题(回id肯定比回整行数据拷贝开销低),业务性避免吧;

题目3

1. 介绍仿大众点评项目的主要模块。

2. 项目难点。

3. 用户登录模块中,Redis 缓存是同步过程还是异步过程,同步过程会有什么问题,用户量大时发得慢该怎么办。

4. 若用消息队列存储验证码相关信息,消息队列的架构是什么,出现消息堆积该怎么办。

5. 增加消费者数量能否随意增加,有什么其他考虑。

6. 双重拦截器的作用,是否能在一个拦截器中实现相关逻辑,双重拦截器有什么好处。

7. 优惠券秒杀中,扣减的是数据库还是 Redis 中的数据,扣减后使用分布式锁和写入消息队列的顺序是怎样的。

8. 若写入数据库时发生异常,Redis 中已扣减的数据是否需要恢复,如何恢复,恢复操作是否会对线上产生影响。

9. 为什么在优惠券秒杀中使用 Lua 脚本,不能用 Redis 的其他数据类型(如 increment 或 decrement 计数器)的原因。

10. 预检信息包含哪些操作,能否在外部完成。

11. 若不在 Lua 脚本中实现预检资格、查询是否一人一单和扣减库存等操作,而在代码中实现,会有什么问题。

12. 一人一单的限制能否保证,若快速点击或用脚本点击两次,是否会突破限制。

13. 一人一单的限制应该在哪个环节实现。

14. 写入消息队列之前应该完成哪些操作。

15. 讲解 JVM 的相关知识,包括类加载器、运行时数据区、执行引擎等。

16. 垃圾回收算法在年轻代或老年代是如何应用的,年轻代的结构是怎样的。

17. 对 AI 有哪些了解,如何使用大模型。

题目4

Java的锁介绍一下

aqs原理

有哪些锁用到了aqs

cms和g1垃圾回收器有什么区别

有进行过jvm调参嘛?为什么要进行这样的调参

介绍一下spring boot的启动过程(完全不知道啊)

tcp粘包说一下,如何解决?

tcp4次挥手

数据处理

有100亿个url,怎么找到相同的url

题目5

1、kafka和rabbitmq 相比有哪些优缺点 2、kafka的延迟情况和数据丢失情况 应该怎么查看 3、redis的hash数据结构是什么样的?那么使用String和使用Hash的区别是什么呢?他们各自的优缺点是什么呢? 4、redis的缓存穿透、击穿、雪崩是什么问题,如何解决? 5、redis 缓存一致性,如何在大量数据的情况下做一致性处理? 6、CompletableFuture的底层原理(还是有点不太熟悉) 7、CompletableFuture内存泄漏的问题(这一块 又吃了没看源码的亏) 8、ThreadLocal的内存泄漏的问题 9、mysql的持久性是如何实现的 10、mysql中undolog redolog中的区别有哪些 11、常见的OOM情况,如何解决(这里说的是读取大量Excel数据的情况)

题目6

JAVA

1、反射的原理,应用场景,哪些场景不能使用反射?自定义一个注解需要定义哪些方面的信息

2、线程的生命周期,各个状态之间的转变通过哪些语句?保证线程安全的方式及优缺点?ThreadLocal会导致什么问题?

3、JAVA中的锁有几种方式?同步锁原理及申请流程、可重入锁原理及申请流程

4、MYSQL事务的隔离级别,分别会导致什么问题?如何在MYSQL中查询隔离级别

5、MYSQL主从同步机制

6、Redis持久化机制、AOF文件重写、Redis宕机重启后,什么机制保证其快速恢复?

SPRING

1、IOC、AOP、bean的实例化流程。IOC中如何解决循环依赖

1、使用过什么消息队列?怎么确保一个消息发送成功?

2、介绍实习项目的背景、技术架构、负责的内容。使用了哪些中间件?

3、怎么使用分布式锁?怎么设置锁的key,拿锁成功和拿锁失败对于下游业务的影响,怎么保证幂等性

4、怎么设置限流参数,阈值等?

5、在项目中做了什么优化手段,最终拿到了什么结果?

二面

题目1

1. 介绍仿大众点评项目的详细内容,包括学到的东西、难点、重点。

2. 详细描述一次C端用户登录行为在系统背后的完整数据链路,每一步系统要做什么、存储在什么地方。

3. 验证码存储在Redis中的key是什么。

4. 用户再次登录时,前端是否做防刷或重复登录验证,还是依赖短信验证码。

5. 验证码发送在系统后台的操作流程。

6. 用户登录态如何维持。

7. 为什么要返回TOKEN,能否返回手机号。

8. TOKEN在浏览器端存储在什么地方。

9. 将TOKEN存到authorization字段的原因。

10. authorization是header还是body字段。

11. 双重拦截器拦截的内容,以及从什么地方取TOKEN。

12. 从Redis中取TOKEN的key是什么。

13. ThreadLocal中存储的是什么。

14. ThreadLocal的定义是什么。

15. ThreadLocal的生命周期是什么。

16. 用户发起HTTP请求时线程是创建还是复用。

17. 在post handler中remove ThreadLocal的原因。

18. 已登录用户后续操作是否需要更新ThreadLocal。

19. 拦截器拦截的请求类型及作用。

20. 分布式系统中,用户请求路由到不同机器时是否需要重新登录。

21. ThreadLocal存在的必要性,能否用其他东西替代。

22. ThreadLocal的优点是什么。

23. ThreadLocal设置的生命周期或服务的生命周期是什么。

24. postHandler的调用时机。

25. 声明线程的方法有哪些。

26. 线程池的核心参数及各自作用。

27. 等待队列是否越长越好。

28. MySQL事务的隔离级别及各自举例。

29. Redis的数据结构及各自特性和适用场景。

30. 最近在学习的内容及大模型相关学习情况。

三面

题目1

索引构建有什么用,底层是怎么做的

httpclient 如何设置连接池,设置参数后 httpclient 底层是怎么做的,用了什么数据结构

为什么操作系统需要虚拟内存,一个 32 位系统里有物理内存 2G,对应的虚拟内存应该有多大?为什么一共就 2G 物理内存,通过虚拟内存技术之后,可以给应用程序提供 4G 内存,多出来的 2G 哪里来的,

假设要写一个网络爬虫,这个爬虫里面有一个功能,想快速的判断一个 URL 地址它之前有没有被爬过。用什么样的数据结构会比较合适?

拼多多

一面

题目1

一、Java基础与JVM(6题)

HashMap扩容时链表转红黑树的阈值为什么是8?退化为6的原因?

synchronized锁升级过程?

G1垃圾回收器如何预测停顿时间?Region大小如何设置?

volatile能否保证数组元素的可见性?如何解决?

ThreadLocal内存泄漏的根本原因?JDK改进方案?

Java 8中Stream的并行处理原理?ForkJoinPool工作窃取机制?

二、并发编程(5题)

AQS中为什么用CLH队列而不用普通链表?

线程池核心参数设置规则?美团动态调整方案?

ConcurrentHashMap的size()方法为何不精确?替代方案?

如何用CAS实现一个无锁栈?ABA问题如何规避?

CompletableFuture如何实现多个异步任务依赖执行?

三、数据库与Redis

MySQL索引失效的10种场景?最左前缀原则的底层原理?

十亿级订单表如何优化分页查询?

Redis大Key删除导致集群崩溃,如何避免?

Redis事务与MySQL事务的ACID区别?

缓存与数据库一致性方案对比?拼多多秒杀采用哪种?

Redis Cluster的slot迁移过程会阻塞请求吗?

MySQL死锁排查步骤?如何用gap锁解决幻读?

四、分布式与微服务(6题)

TCC事务的Confirm阶段失败怎么办?

如何设计一个支撑百万QPS的分布式ID生成器?

Nacos如何实现配置动态推送?长轮询原理?

RocketMQ如何保证消息不丢失?

Dubbo的泛化调用使用场景?如何实现服务降级?

CAP理论在拼多多购物车中的取舍?

五、系统设计(4题)

设计拼多多砍价系统,如何防止刷单?

订单超时未支付自动关闭,如何实现?

如何设计一个实时热卖排行榜?

分布式锁在库存扣减中的应用,Redisson实现原理?

题目2

\1. 自我介绍 \2. 实习亮点 \3. Java线程池类型,应用场景 \4. 线程池怎么进行线程回收的 \5. 为什么要用线程池 \6. 说说RPC是什么 \7. 设计RPC框架有哪些要点 \8. 常用的序列化方式 \9. 为什么要进行序列化 \10. 写题:二叉树后序遍历(非递归) \11. List list = new ArrayList<>()发生了哪些内存分配 \12. 操作系统是怎么进行递归的 \13. 为什么要有多态 \14. 多态父类表现出子类的行为,运行时是如何实现的呢 \15. Java泛型是怎么实现的 \16. Java为什么要用泛型擦除,为什么不像c++一样 \17. sout( "Hello World!”) 运行过程。字符串是怎么打印到屏幕上的 \18. 为什么要有内核态 \19. 从操作系统层面分析java -jar xxx.jar 是怎么运行的,在操作系统层面的可执行文件是什么 \20. Java和JVM的关系 \21. Java和Python有什么区别(答了JIT) \22. 算法:找到一个具有最大和的连续子数组 \23. 介绍一下AOP \24. 怎么指定AOP生效的地方 \25. Java中注解是怎么生效的 \26. 谁去扫描注解的 \27. 介绍一下IOC \28. 介绍一下MQ \29. MQ有什么特性

京东

一面

题目1

1.项目介绍

2.spingboot做了什么事情

3.sql怎么优化,mysql怎么优化

4.bean注入有哪些方式

5.auto wire注解的原理,spring怎么做到加载有这个注解的对象

6.mybatis能不能直接new一个dao 接口的对象,怎么做?拦截器功能原理,使用场景

7.接口性能问题怎么看,怎么分析哪个阶段有问题

8.mysql的三种日志介绍一下

9.发生宕机redolog和binlog怎么协调作用的

10.宕机后怎么恢复数据,一条数据怎么确定回滚还是恢复

11.生产问题定位,平时怎么做的

12.线程池执行过程

13.g1回收器跟cms 相比,各自适合什么场景

14.使用的什么检验的框架,原理是什么

15.mysql索引为什么快

题目2

做项目遇到的问题和解决方法

有没有用到多线程的东西,ThreadLocal

线程池参数怎么设置的

如何保证线程安全

synchronized 和 ReentrantLock 区别

Java 并发类有哪些

ConcurrentHashMap原理

redis 常用数据结构及底层实现

zset 跳表

缓存击穿、穿透、雪崩

击穿、穿透区别在哪

题目3

1、自我介绍+实习项目

2、Spring AOP原理是什么,Java的反射和代理有哪几种

3、BeanFactory和FactoryBean的区别是什么

4、ES的倒排索引是如何实现的

5、除了简历上的项目,还有其他项目可以介绍一下吗?

6、Mysql的间隙锁是什么

7、了解哈希索引吗?为什么innoDB不采用哈希索引

8、了解哈希冲突吗? 处理哈希冲突的方法有哪些?

9、 为什么HashMap 不采用ThreadLocalMap解决哈希冲突的方法(开放寻址法)

10、如果要想实现可以按put的顺序遍历HashMap,要怎么实现呢?那如果要想改变其中的顺序呢?

11、 java的可重入锁是如何实现的?

12、 如果想实现可重入的分布式锁要如何实现呢?

13、对于树的三种遍历方式,分别有什么用途?

14、了解JVM的内存模型,大概介绍一下?

15、实例对象都是在堆上分配吗?(我提到了可以在栈上分配)

16、那有哪些对象是可以直接在栈上分配呢?—

题目4

1、自我介绍

2、电脑上有没有生产环境

3、项目的难点和解决思路以及你的收获

4、ES的原理(这个没有很理解问的意思

5、分布式锁、redisson的实现

6、Redis数据结构

7、JUC的syn和可重入锁

8、JVM+GC

9、MySQL的使用场景,MySQL的使用经验,

10、聚集索引和非聚集索引

11、B+树

12、事务ACID和隔离级别

13、乐观锁、悲观锁

14、为什么有spring,springboot的优势,用了spring全家桶的哪些

15、spring的AOP、spring其他的设计模式

题目5

查一张学生表,表里有学生名字,如何查出学生名字中哪些是重复的? 缓存的过期策略有哪些? 后端一直更新数据,前端一直查缓存,在更新的间隙,缓存是空的,导致缓存穿透,怎么解决? 有没有别的思路可以解?比如通过全局的乐观锁? 创建多线程会用哪些方法创建? 了解completable future 吗?

题目6

  1. 面试官介绍了下岗位
  2. 自我介绍
  3. 现在实习的地方,有留用机会吗?
  4. 拷打项目一(10分钟)
  5. 本科不是计算机,怎么跨考上的?当时怎么准备的?
  6. 考研学专业课时,碰到过什么困难吗?怎么解决的?
  7. 用户登录为啥用 Spring Session 来管状态?它内部是怎么跑的?
  8. 密码用 MD5+盐值 来校验,有啥风险吗?
  9. 现在让你重新设计密码加密存储,你会怎么做?
  10. 数据万象服务是干嘛的?项目里怎么用的?
  11. 如果要实现图片搜索,比如搜“小狗”,就能找出所有带小狗的图片,你会怎么设计?
  12. 什么场景下需要用多级缓存?
  13. 怎么保证多级缓存和数据库的一致性?项目里是怎么做的?
  14. 用 WebSocket 做多人协作编辑,假如有 100 个人同时改一张图,怎么设计才能避免操作互相覆盖?
  15. 你提到加锁,具体怎么加?用 Redis 还是别的?锁什么?锁的粒度多大?
  16. 加锁会让其他用户干等着,没法操作,这块怎么优化?
  17. 平时除了项目,还学了啥新技术吗?
  18. 你觉得用什么锁来控制虚拟线程比较好?
  19. 最近一年用过哪些 AI 编程工具?
  20. 看你一直在一个地方生活学习,以后想去哪工作?

虾皮

一面

题目1

2. 讲一下xxl-job的架构与实现原理(实习有xxljob)

3. xxl-job怎么保证每一个实例的任务只调用一次

4. 算法题:用栈实现队列,说思路

思路:用两个栈,判断第一个栈是否为空,为空将第一个栈的所有元素转移到第二个栈,否则弹出最上层的元素

5. 算法题:一篇文章找出使用频率最高的k个单词

思路:使用一个HashMap存储每个单词出现的频率,转换成结构体,然后再建堆,再堆排序

6. topk拓展:建堆的时间复杂度是多少?

7. topk拓展:堆排序的时间复杂度是多少?

8. topk拓展:你这样不会有点慢嘛,还有更优解嘛?

9. 数组和链表在数据结构上的区别是什么?

10. 数组和链表的使用场景有什么区别?

11. 了解哪些MySQL存储引擎

12. InnoDB引擎有什么特性

13. 索引是数据结构是什么,有什么特点?

14. MySQL有哪些锁

15. MySQL的事务四大特性是什么

16. MySQL的隔离级别是有哪些

17. MySQL默认隔离级别是?

18. RR和RC的区别是什么?

19. 可重复读什么时候能解决幻读,什么时候不能?

20. TCP协议怎么保证可靠性? 三次握手四次挥手、流量控制、拥塞控制

21. 讲讲流量控制怎么做的

22. 拥塞控制算法有哪些?

23. TCP粘包是什么

24. 怎么解决TCP粘包?

25. 如果我的TCP里面就有换行符该怎么解决

26. 进程之间的通信机制有哪些

27. 进程、线程、协程之间的区别

28. 线程有独立的内存空间嘛?

29. Redis有哪些数据结构

30. ZSet的底层实现是什么数据结构

31. 跳表的实现原理是什么?

32. 跳表插入一条数据的具体实现是什么

题目2

1. java的内存模型

2. 数据库优化,sql优化

3. 消息队列有什么作用,kafka在项目中有什么作用

4. 2个topic, 一个group消费者组,一个topic 异常rebalance, 另一个会受影响吗?

5. 讲一下mysql的redo log、binlog、undo log,

6. mysql崩溃以后恢复流程?mysql崩溃之后未提交的事务怎么办?

7. B+数主键索引和非主键区别

8. inplace DDL(不会)

9. RPC框架中,怎么做链路追踪

10. 网页中输入网址的流程变化

11. tcp与udp区别

12. go 的协程和java的线程区别

13. go多协程和java多线程 同时读写,共享资源 处理 方式一样吗

14. java 的线程与内核线程, go的协程与线程的 映射方式一样吗?(1:1,n:m)

题目3

1.可以讲讲用户从发送请求url之后会发生什么吗 ✘

介绍了一下SpringMVC的流程,从url到DispatcherServlet再到各个处理器部件等

实际上面试官是想问从网络通信层面上它们发生了什么

回复不太清楚,只介绍了一下域名通过DNS解析成IP然后请求到后端服务器

2.了解cookie和session吗 ✘

答的很不好,因为自己只学了JWT和token完全没想到会问这块,只答出前者存储在客户端后者存储在服务端

3.了解MySQL中的事务隔离级别吗,它们分别解决哪些问题,具体讲 ✔

4.学过哪些排序算法?✔

冒泡,二分,快排

5.MySQL中索引的数据结构?讲讲优势和为什么✔

6.Redis常见架构✔

7.了解正排索引和倒排索引吗✘

答不太清楚只知道es库中通过倒排索引建表实现较高的搜索效率

8.手撕,反转链表✔

9.延迟队列是什么,了解底层实现吗✘

回答了xdelayed延迟队列的基本应用场景和概念,底层实现不知道

10.AMQP中消息可靠性原理✔

11.你项目中的推荐功能是怎么实现的

简单讲了一下调用了分词器和向量模型的API将库中视频基于标题分到我给出的聚类中

题目4

1. 自我介绍 2. 你常用哪个 JDK 版本? 3. 选一个你熟悉的项目,说说它配了什么垃圾回收器? 4. 描述一下 CMS 的回收流程及每个阶段的作用。 5. CMS 有哪些阶段会 Stop-The-World? 6. 新生代和老年代的划分机制是什么? 7. 对象从新生代晋升到老年代的条件有哪些? 8. 说说 AOP 的最基本实现方式。 9. Spring AOP 生成代理的两种场景/方式分别是什么? 10. 你在项目里用过微服务吗?用的什么技术栈? 11. 有做过哪些 MySQL 调优?举一个具体例子。 12. 当时如何定位到这条慢 SQL?用了哪些工具或命令? 13. 解释 Explain 结果中哪些字段说明索引未生效。 14. Redis 持久化有哪些可选策略? 15. RDB 与 AOF 各自有哪些刷盘/触发方式? 16. 如果要求“不丢数据”或“高性能”分别怎样配置? 17. TCP 四次挥手中 TIME_WAIT 状态的含义是什么? 18. 为什么需要等待 2MSL 才能进入 CLOSED? 19. 你在项目里用过 CompletableFuture 吗? 20. 它与 Future / Task 组合相比有什么优势? 21. 如果异步链路里包含数据库事务,事务回滚会不会有问题?为什么? 22. 线上 Linux 服务器常用命令熟悉吗? 23. 如何在文件里查找关键字? 24. 如何查找某个文件?

题目5

上来先写两句SQL

给了一个学生表

1.两个字段不重复,重复的话就无法插入,建立合适的索引

2.获取表中录取学生人数第二多的公司,要求公司录取学生的人数至少大于3

表设计的一些考量、索引建立的一些考量

sql优化在工作中遇到的一些实例。

一道题:

尽快实现亿级别数据的求和。

八股:

redis为什么快?

Java的一些设计原则

二面

题目1

1. 自我介绍

2. 优惠券平台项目是怎么做的

3. 牛券项目拷打:秒杀是怎么做的?

4. 秒杀接口如果Redis都扛不住了怎么办  限流

5. 怎么限流? Sentinel或者使用Redis

6. 讲讲这两种限流是怎么实现的

7. Sentinel限流是全局维度还是单机的

8. Sentinel限流的原理是什么

9. 优惠券平台优惠券分发过程是怎么样的

10. 实习中主要做了哪些工作

11. 实习中遇到哪些技术难点

12. 实习还有什么收获

13. 讲讲对MySQL分库分表的理解  讲了为啥要分表、为啥要分库、垂直分和水平分等等

14. 垂直分表主要是解决什么问题?为什么要进行垂直分表

15. 为什么一张表有好几个字段要垂直分表呢,除了业务上的解耦?

16. 水平分表主要是解决什么问题?为啥要进行水平分表

17. 水平分表有哪些方式

18. 哈希法和范围法的优劣

19. 如果对优惠券表进行分库分表,用户要查询自己的订单,怎么办

题目2

定量的分析我的项目系统的极限处理能力(没弄过,根本不会)。我说没弄过不知道,又问现在就是要分析它的承受能力,你应该怎么做(还是不会...)

3.项目组件选型考量,用了哪些东西为什么要用这些(最后焦点放在消息队列的选型上,问rocketmq和kafka相较RocketMQ有什么优点,这些优点底层怎么实现的)

4.Redis缓存穿透(缓存空对象+布隆过滤器,还有没有优化手段(不知道...))

5.Redis持久化(设计一套兼顾AOF完整和RDB快的持久化方案)

6.Java垃圾回收机制

字节

一面

题目1

3. redis相关

3.1 redis有什么数据结构

3.2 GEO的原理

3.3 排行榜用什么数据结构

3.4 朋友圈共同好友用什么数据结构

3.5 实现数字的原子+1用什么方式

4. mysql相关

4.1 mysql有哪些锁

4.2 分布式锁还有哪些实现方案

4.3 很多多余的索引有什么缺点

4.4 怎么利用索引做查询优化

4.5 大表统计多少条数据行满足筛选条件怎么优化

4.6 亿级数据大表怎么做查询优化

4.7 分表要怎么做

4.8 分区表有听说过吗

5. ThreadLocal是什么,内存泄漏是怎么回事

6. 并发访问资源怎么防止冲突

7. 场景题:一个守护进程负责对工作进程重启,但是现在工作进程一直没拉起来,怎么去定位问题

题目2

进程间的通信方式

http属于哪一层分层模型:应用层

访问网页的全过程

丢包、粘包问题

创建子进程的方法:fork

PgSQL和MySQL的区别,选型时的考虑

建立索引选择字段的原则,最左匹配原则的底层原理是什么

数据库范式

Zset的底层原理,查询和增删改的时间复杂度

题目3

  • 预计能实习多久?
  • 能简单介绍一下实习期间做了什么吗?
  • 能介绍一下什么是 Websocket 吗?
  • Websocket 和 SOCKET 有什么区别?
  • Websocket 怎么保证连接是保活的?
  • 你了解大模型的一些相关的技术概念吗?
  • 实习项目中除了聊过的内容,还有什么比较有技术深度或挑战性的事吗?
  • 刚才提到的选择算法(雪花算法)有哪些潜在的问题?
  • 雪花算法的时钟回拨问题怎么解决?
  • 能介绍一下项目解决什么问题,或者主要有哪些产品功能吗?
  • 秒杀模块遇到的核心问题是什么?
  • 用 Redis 扣减库存时,怎么保证 Redis 和 MySQL 数据一致性?
  • Redis 库存数量是什么时候初始化的?
  • 一道字节的算法题:小于n的最大数(网上能搜到原题)
  • 先讲思路再写代码,面试官对思路里面有问题的地方会做一些提示
  • Redis 是单线程的,单线程会引入什么问题吗?
  • MySQL 的 Innodb 存储引擎默认的事务隔离级别是什么?
  • Innodb 的默认事务隔离级别能解决幻读问题吗?
  • 你还在面试其他的实习吗?
  • 有拿到 offer 吗?
  • 如果通过面试,你最早什么时候能来实习?

题目4

1. 麻烦你先简单自我介绍一下。

2. 这个搜索优化里边你做了什么工作?有什么结果?

3. 机票场景我理解可能有很多这种目的地、价格这种不同的因素,尤其是价格非常敏感,那这个缓存会缓存价格吗?

4. 那如果你的9天拉到30天,会不会缓存命中率的确提高了,会不会造成后续到下单环节实际库存不匹配?

5. 影响多大?

6. 我们扩展一下,假如说你的最终下单环节没有这个下单环节在,实际查询服务商的价格给你兜底了,你的缓存需要精准,怎么做?

7. 你刚提到这个主动缓存,这个“主动”怎么理解?

8. 你能描述一下一个简单的搜索系统主要包含哪些环节吗?

9. 就比如说召回、快速分析、召回、精排这些。

10. 你刚提到多个供应商的同一个航班线的这种合并会比较耗时,为什么它耗时?

11. merge为什么耗时?

12. 那就必须得等最慢的规则才能返回吗?

13. 那进一步的能不能回来一个就处理一个?

14. 耗时和CPU哪个更重要?

15. 你们线上CPU利用率是多少?

16. 这个 MCP 项目的难点在哪?

17. 动态工具加载和自动注册在 MyBatis-Plus 里底层是怎么实现 MCP 服务动态注册和热更新的?

18. 你这边主要熟悉的开发语言是什么?

19. synchronized 的底层原理是什么?

20. synchronized 是可重入的吗?

21. 什么叫可重入?

22. 它是怎么实现可重入的?

23. 关于线程池:核心线程数10,最大线程数20,任务队列容量100,不断提交任务时,线程和队列状态会怎样变化?

24. Redis 里 zset 是怎么实现的?

25. 压缩列表和跳表什么时候用压缩列表,什么时候用跳表?

26. 跳表的结构是怎么样的?

27. MySQL 查询:成绩表中分数在80到90之间,排名前五的学生姓名及分数,SQL 怎么写?

28. 操作系统中线程和进程的区别?

29. 在 Linux 系统上,怎么查当前系统负载较高的进程及其实时负载?

30. 定位某个 Java 业务进程 CPU 很高,该怎么进一步定位问题?

31. 大模型里“温度”参数的作用是什么?

32. MCP 和 Function Call 有什么区别?

33. SSE 和流式 HTTP 有什么区别?

34. SSE 断开了怎么办?

题目5

1. Http请求中有哪些请求方式?

2. 说一下Https是如何保证链接安全的?

3. Https的加密方式是怎样的?对称还是非对称?

4. Http的状态码都有哪些,代表什么意思?

5. TCP是如何实现可靠传输的呢?

6. 在浏览器中输入url后会发生哪些事情?

7. C++指针和引用的差别是什么?

8. 说一下动态链接和静态链接是什么,以及各自的优缺点

9. 说一下深拷贝和浅拷贝的区别

10. 进程通信的解耦机制?

11. linux进程通信的几种方式以及各自的应用场景

12. 说一下数据库的范式

13. 说一下多线程死锁的原因吧

14. 如何避免死锁呢?

15. java是如何保证线程安全的呢?

16. 说一下java里面的容器是如何保证线程安全的?

17. AOP在Spring中是怎么实现的呢?

18. 说一下缓存穿透、击穿、雪崩

19. 写的项目有没有上线过,有没有用户大规模使用,缓存穿透这些问题是怎么遇到的?(答:模拟这些问题)

20. 你是怎么模拟这些过程的呢?

21. 你的linux主要是用来干嘛的呢?

题目6

1.实习 拷打 主要db

2.分表的设计

3.MQ的使用

4.索引 联合索引

5.缓存三剑客

6.缓存一致性

7.分布式锁

8.浏览器输入域名到响应返回

题目7

缓存里存什么数据? Redis 的什么特性使它可以胜任缓存工作? Redis单线程是什么意思,为什么单线程就会快? IO多路复用是什么?单线程和多线程在IO多路复用里的区别? 在实习过程中,用的HTTP版本是多少? HTTP2.0和3.0相比1.1的优化方式?

题目8

1.实习项目,问了20分钟左右 2.你多线程是怎么用的 3.线程进程区别,怎么创建线程 4.线程池原理,拒绝策略 5.数据库索引数据结构、优点,你们部门项目是怎么加索引的 6.springboot用到了什么设计模式 7.spring的循环依赖 8.项目里用过什么注解 9.数据库事务的隔离级别和原理 树的z型遍历,但是是英文题

题目9

实习中有什么挑战性的东西 有用到什么中间件吗 八股/场景 一条sql语句的执行顺序(内部流程,解析器执行器) 一条sql语句的执行计划(计划,先联表还是先分组) innodb事务隔离级别 MySQL索引结构 为什么选择B+树 什么时候会索引失效? 说一下联合索引 对(a,b,c)这样的索引,where b > 10 and a = 1可以利用索引吗 业务中发现数据库机器CPU和内存都很高怎么办 怎么处理慢查询 redis常见数据类型 redis为什么适合缓存 redis cluster的读写 分片等

题目10

1.自我介绍 2.项目拷打(20min) a. 介绍一下视频上传功能 b.介绍一下私聊功能 3.手撕K个一组反转链表(最后不够K个也要反转没注意)[15min] 4.介绍一下MVCC? 5.介绍一下间隙锁?

题目11

  1. 详细介绍一下你那个海洋物联网平台都干了些啥?

  2. 那么多不同设备的数据,是怎么接到系统里的?它们的数据结构有啥不一样?

  3. 刚提到了反射,Java 里有几种方式能实现反射?

  4. CGLIB 和 JDK 动态代理,主要区别是啥?

  5. 数据是怎么存的?如果按半年存,要查 6 月到 8 月的数据该怎么做?

  6. 怎么监控和优化慢 SQL?

  7. 索引在什么情况下会失效?MySQL 有哪些索引类型?聚簇索引和非聚簇索引有啥区别?

  8. Spring 的事务传播行为有哪几种?它们有啥用?

  9. 消息队列在项目里一般都用在哪些地方?

  10. 聊聊你对 Kafka 的理解?它的核心组件和 broker 都是干嘛的?怎么保证消息不丢?

后45分钟进入编程环节:

核心代码模式算法题"求前缀和"

附加问题:

  1. 用 Shell 写个脚本,统计日志里出现次数 Top 10 的 IP。
  2. 用 Java 实现同样的功能(要求自己手写堆)。
  3. 给你一些日志(每条包含 ip、start、end),算一下一天中同时在线人数的峰值是多少。

题目12

\1. 自我介绍 \2. 讲一个实习或项目的亮点 \2. go协程和c协程区别?栈溢出会崩溃吗? \3. read系统调用会发生几次用户态到内核态的切换?零拷贝会发生几次? \4. 浏览器输入url,客户端发包过程?,在数据链路层用到什么协议,是怎么路由到目标服务器的? \5. mysql的mvcc版本链存在什么位置? \6. mysql日志没落盘突然断电了怎么办? \7. 两阶段提交涉及哪些日志?

题目13

自我介绍 详细介绍第一个项目 (我的项目放的比较多) 面试官了解项目的基本情况(使用场景和一些简单的细节) 数据量级比较大的时候如何解决(详细答了解决的算法设计思路,这块项目里详细做过) 关于项目中网络传输和数据存储的一些问题 数据传输中用到的协议 介绍另一个项目(做了个web服务框架) 安全认证的方式 链表和数组的区别 一个场景题,数组取数据相关的 线程和进程的区别 详细说明适用场景 多线程的CPU底层处理方式 介绍一下设计模式的一些情况

二面

题目1

  • 跟电影售票有什么区别?剧院跟电影的区别是啥?为什么不能放在现有平台上呢?
  • 项目有什么关键的设计?
  • 如果我们要做一个登录态的保持,比如说七天免登录,那这个应该怎么做?
  • access TOKEN 的过期时间是怎么保证的?
  • 这个(TOKEN 过期时间)会被篡改吗?怎么做的非法校验?
  • 为什么要两个 TOKEN 呢?
  • 存在 cookie 里了,为什么没有暴露呢?(回答设置HTTP-only)设置这个是能做什么?(被拷打了,没有答明白两个token应该存放在哪)
  • token控制 7 天有效期这个怎么控制?
  • 那假设我们再把这个问题升级一下,就是如果 7 天内有登录,那这个 key 就不过期。那你怎么实现?
  • 就是如果我连续登录,那理论上不是固定的过期时间,是超过多长时间不登录才过期?
  • 只要你 7 天内有登录,那我们这个就不过期;如果超过 7 天没登录,那就过期重新登,那你应该怎么做?
  • 那比如说我中间有登录,只要我中间打开 APP,这个就不过期,这个怎么做的?
  • 会生成新的 TOKEN 刷新了,怎么刷?

题目2

1.自我介绍 2.为什么选用websocket 3.谁来敲定使用websocket的 4.websocket和sse区别 5.为什么sse原生只支持文本格式 6.sse是怎么做限制的 7.什么是双全工协议 8.使用websocket有什么要注意的地方 9.讲一下组件的原理 如何实现交互的 10.websocket能复用长连接吗 11.这个组件肯定是多机部署的 怎么知道你要选用的是哪个连接 12.你觉得这个组件设计的收益在哪里 13.假如让你实现一个websocket 如何实现 14.rocketmq和kafka区别 15.为什么kafka吞吐量大 16分布式锁的key和过期时间怎么设置的 17.为什么要用分布式锁 有别的方法吗 18.讲一下故障降级的机制

三面

题目1

1.简单寒暄了几句

2.自我介绍

3.项目拷打

a.项目里Nginx负载均衡怎么做的?

b.Nginx配置集群怎么做?[以为问的是后端集群在Nginx怎么配置,结果是Nginx服务器集群怎么配置,没做过Nginx服务器集群根本不知道]

c.你的多后端服务配置在哪?[追问:为什么在Linux不在Docker上?]

d.从键入请求到你的服务返回响应中间发生了什么?

e.那你得到IP地址和MAC地址去请求集群中哪台Nginx服务器?

f.域名挂靠怎么挂靠的[没听懂这里想问什么,可能是请求的后端服务器的域名或者其他的,有牛友可以解答一下吗]

g.Linux命令了解吗?

h.我如果把Nginx的配置文件的所属目录更改了,那我要做哪些操作

这里面试官看出来我没什么实战经验了,直接问我你刚才说的是不是都是背的?(好想钻地缝里去)

开始拷打操作系统:

1.删除一个文件在操作系统里面是什么流程?

2.进程线程区别?

3.你刚才提到说进程独立分配资源,具体有哪些资源?

4.硬链接软链接了解吗?区别在哪?

接着拷打数据库:

1.做过数据库备份吗?对应SQL语句是什么?[忘光光]

2.来个SQL查询,分别找出学生表中姓李的男生女生个数(我的答案是group by 性别 having name like “李%”,面试官说为什么不where name like “李%” group by 性别,汗流浃背了)

3.来写一个反射的实例以及方法的调用(几百年没写过反射了,直接蒙了)

手撕在数组中出现次数超过一半的数字

面试官可能看我好多答不上来有点尴尬,接着问我消息队列:

1.kafka的原理?

2.kafka部署在几台机器上,一个分区几个副本?

小红书

一面

题目1

1.介绍自己。讲一下项目

2.讲一下你用的这个reactor网络模型

3.你说把耗时操作push到线程池,那返回的结果是如何回到reactor的回调里的呢。我不会,胡扯了一通,还是对项目不够了解

4.讲一下epoll处理的过程

5.send返回以后数据是已经从机器发出去了吗

6.缓冲区满了以后阻塞模式的send会是什么表现?非阻塞模式呢

7.什么时候触发send缓冲区的清理。面试官提到tcp之后我说是ack以后

8.在reactor回调里不小心写了一个sleep会怎么样?影响的是一个连接还是一个线程?其实是想问线程切换相关

9.你提到nginx,有没有看过nginx的实现,我说没有,面试官说因为你之前提到用epoll实现reactor网络模型,其实应该先看一下nginx和redis的实现,因为他们就是标准的。而且redis还是跨平台的,不仅是epoll,会根据操作系统的不同选择不同的方案

10.你提到io_uring,是使用过吗?内核版本多少?是要解决什么问题?只是处理网络io还是包括文件?

11.你提到的这个用户态轻量级线程协程是什么?具体的切栈的逻辑你有看过吗?操作寄存器如果不用内联汇编的话你觉得c和c++可以实现吗?面试官意思是c/c++没有提供直接操作寄存器的接口

12.你这边还提到了使用过dpdk,dpdk和标准的内核网络栈有什么区别?是如何绕过内核的?驱动是用户态的还是内核态的?工作原理可以描述一下吗?它是主动去pull还是一个中断触发

13.read系统调用读本地文件一直到磁盘设备大概经历那些流程。我说我不太了解

题目2

实习里面这个监听binlog怎么保证一致性

mq有了解过吗

es有了解过吗

es和mysql的区别

mysql的索引结构

垃圾回收算法

jvm各区域

一次younggc的过程

synchronized锁底层

synchronized锁升级

mq有了解过吗(只说会kafka 讲了一下kafka的架构 以及一些机制

分布式一致性(说了raft,说了分布式事务

分布式事务实现的技术有了解过吗?这个不会

怎么看待ai

题目3

1. 自我介绍 2. 项目里面提到的一些内容 3. Redis使用场景、Redis数据结构、部署方式(单机/集群/哨兵)、Redis哨兵模式原理 4. MySQL与ES的核心差异、搜索索引优化内容、压测工具、项目核心难点 5. MQ使用场景、MQ原理(核心组成) 6. JVM运行时数据区域有哪些? 7. 常见垃圾回收算法及各自区别与优点 8. Java线程池核心参数 9. 线程池拒绝策略有哪些? 10. Java内置锁(synchronized)原理 11. 如何避免死锁? 12. 分布式一致性了解吗?分布式锁或分布式事务?

题目4

\1. 自我介绍 \2. 介绍一下第一个需求的背景 \3. 为什么使用CompletableFuture \4. 线程池的参数以及你的设置 \5. 那如何设计一个阻塞队列呢 \6. 第二个需求的背景 \7. 插件是怎么实现的 \8. 什么是AOP \9. Caffeine的内存淘汰策略,及其优势 \10. 第三个需求的背景 \11. 为什么选择使用工厂+策略进行优化 \12. 第四个需求的背景 \13. 有没有遇到什么问题

二面

  • redis 常用数据结构, 实现, big key,
  • 业务处理时间超过了分布式锁的过期时间, 如何处理
  • mq 如何实现订单超时处理

题目1

几乎都答出来了 简单问了一下实习 Java 的hash函数是怎样的 hash函数有什么降低hash冲突的方法吗 垃圾回收算法 标记复制的缺点是什么? 标记复制为什么是8:1:1 jvm的软引用和弱引用的区别 为什么jvm会有这几种引用的区分 讲一下协程 线程和协程区别,哪个上下文切换开销大 协程的上下文切换开销主要在哪里? 协程栈大小是多大,线程呢? springboot的优势 除了约定俗成的配置,你知道springboot在初期是怎样发展起来的吗,有什么优势 spring是如何解决循环依赖的? 三级缓存为什么能解决循环依赖

网易

一面

题目1

开局一个sql题: 登录记录表record,有字段记录id(id),用户id(user_id),登录时间(login_time),怎么查询用户A(user_id=10000)的最近3次登录记录? 写了个select * from record where user_id = 10000 order by login_time desc,忘记最近3次怎么写了(加个limit 3就行) 接下来全是场景题,感受一下: 1、服务器被入侵了如何处理?(随便答了个拉黑ip,但是换一个ip怎么办,不会) 2、发现某个接口速度很慢,如何排查?(一脸懵) 3、mysql某条语句查询速度很慢,如何排查?(说了explain查看执行计划) 4、1000w条数据找目标值,几分查找比较合适?(没懂这题想考什么,是想考B+树索引吗)