记录一下某外资的面试

文章目录

标题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结束再进行 如何设置

使用count
在这里插入图片描述

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响应用户。
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值