多线程 该笔记基于b站黑马程序员Java面试题视频制作 一. 线程的基础知识1. 线程与进程的区别程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程 一个线程就是一个指令流,将指令流中的 2023-10-09 面试篇 #多线程
消息中间件 消息中间件面试题该笔记基于b站黑马程序员Java面试题视频制作 一. RabbitMQ1. RabbitMQ如何保证消息不丢失 异步发送(验证码、短信、邮件…) MYSQL和Redis , ES之间的数据同步 分布式事务 削峰填谷 … 生产者确认机制 RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后,会返回一个结 2023-10-08 面试篇 #RabbitMQ #Kafka
集合 该笔记基于b站黑马程序员Java面试题视频制作 一. 数组 1. 算法复杂度分析时间复杂度: 用来评估代码的执行耗时 大O表示法:不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势 T(n)与代码的执行次数成正比(代码行数越多,执行时间越长) 当n很大时,公式中的低阶,常量,系数三部分并不左右其增长趋势,因此可以忽略,我们只需要记录一个最大的量级就可 2023-10-05 面试篇 #Java #集合
框架 该笔记基于b站黑马程序员Java面试题视频制作 1. 单例bean是线程安全的吗?12345@Service@Scope("singleton")public class UserServiceImpl implements UserService { } 范围 范围 singleton (默认)将每个Spring IoC容 2023-09-28 面试篇 #Spring #Mybatis
MySQL 该笔记基于b站黑马程序员Java面试题视频制作 1. 定位慢查询在MySQL中如何定位慢查询? 表象:页面加载慢、接口压测响应时间过长(超过1s) 聚合查询 多表查询 表数据量过大查询 深度分页查询 定位慢查询可以通过开源工具或者MySQL慢日志 方案一: 调试工具: Arthas 运维工具:Prometheus、Skywalking 方案二: 慢查询日志记录了所有执行时间 2023-09-17 面试篇 #MySQL
redis redis面试题该笔记基于b站黑马程序员Java面试题视频制作 redis的作用: 缓存 分布式锁 消息队列、延迟队列 … … 1. 缓存穿透查询一个不存在的数据,MySQL查询不到数据,也不会把数据写入到缓存中,这样就会导致每次请求直接查询数据库 解决问题: 缓存空数据,查询返回数据为空时,也把这个空结果写入到缓存中 优点: 简单 缺点: 消耗内存,肯能会发生不一致问 2023-09-11 面试篇 #redis