面试题分享11月7日

1、ThreadLocal 是什么

是 Java 中线程的本地方法变量,用来存储每个线程的私有数据,每个线程都有它的独立副本,相互隔离,互不影响

2、ThreadLocal 实现原理

每个 ThreadLocal 都有一个 ThreadLocalMap 对象,用来存储 ThreadLocal 变量和对应的值,通过 ThreadLocal 对象的 get()、set() 方法访问对应的 ThreadLocalMap 的值

3、ThreadLocal 的使用场景

token 验证之后会把用户相关的信息存储在 ThreadLocal 中,方便之后业务获取当前业务信息

数据库连接、事务管理,查日志的记录

4、ThreadLocal 注意事项

ThreadLocal 是不安全的,存在内存泄漏问题,当一个线程结束时,需要手动清除对应的 ThreadLocalMap,以避免内存泄露问题(在线程最后 remove() )

5、ThreadLocal 优缺点

优点:线程安全:他会建立一个独立的变量副本,确保他们之间互不影响

简化编程模型

可以跨层:跨类跨方法传递变量

数据隔离:每个线程提供单独的上下文环境,方便跨层传递,避免参数传递的复杂性

缺点:会造成内存泄漏

6、Spring Boot 如何读取配置文件

@Value 属性注入

@ConditionalOnProperty(prefix = "") Java Bean

@PropertySource

7、Spring Boot 配置文件的优先级

file:./config/application.properties 高

file:./application.properties

classpath:/config/application.properties

classpath:/application.properties 低

8、SpringBoot 常用注解

启动层:@SpringBootApplication(总代理)、@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan、@MapperScan("com.by.dao")

controller 层:@RestController、@RequestMapping、@ResponseBody、@AutoWired、@GetMapping、@PostMapping、@PutMapping、@DelectMapping

service 层:@Service

dao 层:@Mapper

@Configuration、@Bean、@Resource、@value、@ConditionalOnProperty

9、常用的日志框架

SLF4j(Simple Logging Facade for Java)门面模式(抽象层)

Log4j、Log4j2、logback 日志的实现

10、ELK

是由Elasticsearch (ES):非关系型数据库

Logstash (LS):采集器

Kibana (KB):UI 可视化工具

11、EFK

是由Elasticsearch (ES):非关系型数据库

Filebeat (LS):采集器

Kibana (KB):UI 可视化工具

Filebeat 相对于 Logstash 来说更为轻量级,资源消耗较小

12、MDC

其实就是 ThreadLocal 的升级版 InheritableThreadLocal ,它不仅继承了 ThreadLocal 还扩展了一些功能,就比如说子线程继承了父线程的 ThreadLocal 的值(简单说父线程会将它脑门上的标签复制一份给到子线程,让子线程也可以被 MDC 所访问)

对于 web 应用来说,会在请求的最开始(在拦截器 Filter)保存这些数据

13、InheritableThreadLocal 与ThreadLocal 的区别

InheritableThreadLocal 继承了 ThreadLocal 类,还扩展了一些其他的功能

准确的说就是 InheritableThreadLocal 可以让子线程继承父线程的 ThreadLocal 的值,ThreadLocal 不可以

相关推荐
阳光是sunny10 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
灯澜忆梦10 小时前
GO_并发编程---定时器
开发语言·后端·golang
阳光是sunny10 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
皮皮林55111 小时前
开源实力派,给本地 AI 装上深度调研能力,一张 3090 跑到 95.7 分!
后端
努力的小雨11 小时前
把 Windows 桌面图标做成一个会自己运转的小世界
后端
武子康12 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
腾渊信息科技公司13 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
IT_陈寒14 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端
段一凡-华北理工大学14 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
码事漫谈15 小时前
1999年的电商前夜和2026年的AI前夜 历史押韵但从不重复
后端