文章目录
- 标题English introduction
- 标题What did u do in this gap time
- 标题What’S the big challenge in your work experience
- 标题 4、介绍一个自己熟悉的项目或最近的项目,包括项目的背景,使用的技术,在里面的角色
- 标题5、项目中有多少个微服务
- 标题6、分布式事务是怎么实现的
- 标题7、Dubbo在项目中是怎么用的。除了考虑进程的通讯,有考虑过高并发吗
- 标题8、网关通过什么来去做
- 标题9、阿波罗gateway的功能
- 标题10、JVM的参数调优
- 标题11、关于虚拟机的使用
- 标题12、关于内存溢出、内存泄露
- 标题13、线程池5大核心参数;最大和最小核心线程数是怎么确认
- 标题14、lock和synchronize的区别
- 标题15、关于线程安全方面,你知道为什么会存在内存泄漏的情况
- 标题16、关于框架方面,发一个spring boot的请求怎么到controlor上
- 标题17、你有没有自己写过一些starter去加载。怎么去实现
- 标题18、tansaction的注解,传播机制有哪些
- 标题19、关于数据库。Redies和mysql的事务机制的区别
- 标题20、怎么设定最大和最小连接数
- 标题21、关于索引
- 1.kafka rabbitmq如何保证消息不丢失
- 2.如何保证幂等
- 数据库
- 1.sql的优化
- 2.索引
- 索引B+树的实现
- 3.连接数
- 4.explains里面的参数都有啥
- 自动装配原理
- beanidfiny
- 事务的传播机制
- 单体服务到微服务架构的升级
- io流中的设计模式
- arraylist的扩容机制
- hashmap碰撞的话
- hashmap的底层实现
- 设计模式
- jvm调优 默认的垃圾回收器 和G1区别 G1的特点
- 非阻塞流的netty使用过么
- 如何实现鉴权的
- 一个线程A 等待一个线程B结束再进行 如何设置
- io流都有哪些
- io使用到的设计模式有哪些
- Spring中的请求如何到controller上
标题English introduction
标题What did u do in this gap time
标题What’S the big challenge in your work experience
标题 4、介绍一个自己熟悉的项目或最近的项目,包括项目的背景,使用的技术,在里面的角色
标题5、项目中有多少个微服务
标题6、分布式事务是怎么实现的
标题7、Dubbo在项目中是怎么用的。除了考虑进程的通讯,有考虑过高并发吗
标题8、网关通过什么来去做
标题9、阿波罗gateway的功能
标题10、JVM的参数调优
标题11、关于虚拟机的使用
标题12、关于内存溢出、内存泄露
标题13、线程池5大核心参数;最大和最小核心线程数是怎么确认
标题14、lock和synchronize的区别
标题15、关于线程安全方面,你知道为什么会存在内存泄漏的情况
标题16、关于框架方面,发一个spring boot的请求怎么到controlor上
标题17、你有没有自己写过一些starter去加载。怎么去实现
标题18、tansaction的注解,传播机制有哪些
标题19、关于数据库。Redies和mysql的事务机制的区别
标题20、怎么设定最大和最小连接数
标题21、关于索引
## 标题22、消息中间件有用到什么kafka和rabbitMQ。消息丢失、消息重复怎么解决
Kafka 在消息处理的顺序性方面有一些机制,但并不保证消息的严格有序性。以下是 Kafka 处理消息顺序性的一些特点:
1、分区内有序性: 在每个分区内,消息是有序存储的。Kafka 保证对于每个分区,消息的写入和消费是按照消息的顺序进行的。这意味着对于同一个分区的消息,它们将按照发送的顺序被消费。这样保证了在单个分区内的消息顺序性。
2、分区间无序性: 在多个分区之间,消息的顺序性不能得到保证。不同分区的消息在 Kafka 集群中是并行处理的,而且 Kafka 也不会跨分区地维护全局有序性。因此,对于多个分区的消息,它们在消费者端接收的顺序可能与发送顺序不一致。
3、消息复制: Kafka 支持多副本复制,每个分区可以有多个副本存储在不同的 Broker 上。在进行消息复制时,Kafka 会保证消息的副本在各个 Broker 上的复制顺序与领导者(Leader)分区中的消息顺序保持一致,从而确保数据的一致性。
1.kafka rabbitmq如何保证消息不丢失
2.如何保证幂等
数据库
1.sql的优化
2.索引
索引B+树的实现
3.连接数
max_connections
4.explains里面的参数都有啥
自动装配原理
beanidfiny
事务的传播机制
单体服务到微服务架构的升级
io流中的设计模式
arraylist的扩容机制
在 Java 中,ArrayList 是基于数组实现的动态数组,当向 ArrayList 中添加元素时,如果当前数组已经满了,就需要进行扩容操作。ArrayList 的扩容机制如下:
初始容量:当创建一个 ArrayList 时,如果没有指定初始容量,则会使用默认的初始容量(一般为 10)。
扩容策略:当添加一个元素时,ArrayList 会先检查当前数组是否已满,如果已满则会进行扩容。ArrayList 会创建一个新的数组,一般是当前容量的 1.5 倍(JDK 8 及之前版本)或者当前容量的 1.5 倍加上 1(JDK 9 及之后的版本)。
数据复制:接着,ArrayList 会将原数组中的元素全部复制到新数组中。
替换引用:最后,新元素被添加到了扩容后的数组中。
这样就完成了 ArrayList 的扩容操作。由于扩容涉及到数据的复制,因此在大量添加元素时可能会导致性能损耗,建议在知道大概元素数量的情况下,通过构造函数指定初始容量以减少扩容次数。
hashmap碰撞的话
拉链法 --使用头插法
hashmap的底层实现
设计模式
jvm调优 默认的垃圾回收器 和G1区别 G1的特点
G1是弱化了分代的思想,使用了分区的region的概念。
非阻塞流的netty使用过么
异步线程
1、项目启动类上添加@EnableAsync注解,表示开启支持异步任务;
2、创建配置线程池,使用@Configuration和@Bean注解交由Spring容器管理;
3、使用@Async注解标记异步任务;
如何实现鉴权的
用户登录成功后,服务器生成一个包含用户信息的JWT Token,并返回给客户端。
客户端在每次请求时将JWT Token包含在请求头中,服务器端验证Token的有效性并提取用户信息。
一个线程A 等待一个线程B结束再进行 如何设置
io流都有哪些
io流主要是字节流 字符流 缓冲流 文件流
以前我常搞混了这几种 记录一下
常见的IO模型主要有五种,分别是同步阻塞IO(Blocking IO)、同步非阻塞IO(Non-blocking IO)、IO多路复用(IO Multiplexing)、信号驱动IO(Signal Driven IO)和异步IO(Asynchronous IO)。
io使用到的设计模式有哪些
io用到的装饰器模式
装饰器模式是给对象本体加功能 而不产生新额对象
代理模式是给根据对象生成一个新的代理对象
Spring中的请求如何到controller上
用户发送请求至前端控制器DispatcherServlet。
- DispatcherServlet收到请求调用HandlerMapping处理器映射器。
- 处理器映射器找到具体的处理器(controller或者handle)(可以根据xml配置、注解进行查找),生成 - 处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
- DispatcherServlet调用HandlerAdapter处理器适配器。
- HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
- Controller执行完成返回ModelAndView。
- HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
- DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
- ViewReslover解析后返回具体View。
- DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
- DispatcherServlet响应用户。