- 博客(23)
- 收藏
- 关注
原创 Spring Bean的线程安全问题
每次请求都会创建一个新的 Bean 实例,适合需要频繁变化的对象。成员变量,静态变量默认作用域Spring IOC容器仅存在一个Bean实例,Bean以方式存在,在创建容器时就同时自动创建了一个Bean对象。作用域范围是ApplicationContext中。:成员变量,静态变量(仅限 Web 应用):每个 HTTP 请求都会创建一个新的 Bean 实例,请求结束后,Bean 实例被销毁。(仅限 Web 应用):每个 HTTP 会话创建一个 Bean 实例,会话结束后,实例被销毁。
2024-09-28 18:02:01
480
原创 SpringBoot基础知识
Spring Boot 的启动流程大致分为以上几个步骤,从执行主方法开始,到创建和配置 Spring 上下文,再到加载 Bean 和自动配置,最终启动 Web 服务器并处理请求。这个流程简化了传统 Spring 应用的配置,使开发者能够专注于业务逻辑,而不是底层的框架细节。热部署: 修改代码不需要重启,就可以实现编译并部署到服务器上。(1)在开发时修改代码不需要重启服务,节省了时间。(2)部署在服务器上的程序,可以在不停止的情况下进行升级。①使用devtools。
2024-09-24 22:08:00
2289
原创 Spring面试题合集
在 Spring 框架中,Bean是最基本的概念之一。Spring IoC(Inversion of Control,控制反转)容器负责管理这些 Bean,它们是组成应用程序的核心组件。在 Spring 中,所有的 Bean 都是由 IoC 容器来创建、初始化和管理的。在 Spring 框架中,Bean是指由 Spring 容器管理的对象。Bean 可以是任何类型的对象,通常是服务层、数据访问层或者业务逻辑层的组件。Spring 通过容器创建并管理这些对象。
2024-09-20 21:54:26
2588
原创 JVM虚拟机基础知识
运行java文件jdk:java development Kit java开发工具包jre:java Runtime Envirement java运行环境JVM。
2024-09-18 21:48:22
1166
原创 Java并发基础知识
进程是程序执行的实例,在一个操作系统中,正在运行的程序就是进程在一个进程中,正在运行的子程序流就是线程。是程序执行的最小单元,CPU调度的最小单位,指的是一个进程内的一个独立的执行路径。进程是线程的集合,一个进程除了包含多个进程之外还包含其余的共享变量空间。上下文切换(Context Switch)是指当操作系统在不同的线程或进程之间切换执行时,保存当前线程或进程的状态(即上下文),并恢复下一个要运行的线程或进程的状态的过程。
2024-09-16 20:24:44
1192
原创 如何实现MySQL和Redis的数据一致
这个问题没有标准答案,主要聊得是思路和解决方案,并结合业务场景说出为什么选择这个方案,不同方案的优缺点对比。
2024-09-16 10:41:45
660
原创 Redis五中数据类型的底层实现
字符串是 Redis 中最基础的数据类型,可以存储整数、浮点数或字符串。Redis 并未直接使用 C 语言的char数组来存储字符串,而是实现了一种名为的结构,它比 C 语言的字符串更高效和灵活。\0。
2024-09-15 16:09:20
1101
原创 IO多路复用
I/O 多路复用是一种在高并发环境中高效处理多个 I/O 操作的机制,避免了传统阻塞 I/O 模型的线程开销问题。常见的机制如selectpollepollkqueue各自适用于不同的场景,其中epoll是 Linux 系统中处理大规模 I/O 操作的首选。
2024-09-15 14:54:31
942
原创 Redis实现分布式锁
分布式锁是一种用于在分布式系统中协调多个节点对共享资源进行访问的机制,确保同一时刻只有一个节点能访问该资源。其目标是解决多个节点并发访问资源时的竞争问题。单机锁则是在单一系统中使用的锁机制,只需在一个进程或线程之间进行协调。
2024-09-14 15:40:17
927
原创 Redis基础知识
RDB:适合定期备份,快速恢复,但可能丢失最近的数据。AOF:数据更安全,但写性能较低,文件体积较大。混合持久化:结合两者优点,既保证数据安全又能快速恢复。Redis 缓存设计涉及多个方面,从缓存使用策略、数据结构选择到过期和淘汰机制,再到缓存的一致性和高可用性设计,最终目标是通过 Redis 提高系统性能、降低数据库压力,同时确保缓存数据的时效性和准确性。
2024-09-13 20:26:34
923
原创 MySQL日志
MySQL日志主要包括七种:1.重做日志(redo log)2.回滚日志(undo log)3.归档日志(bin log)4.错误日志(error log)5.慢查询日志(slow query log)6.一般查询日志(general log)7.中继日志(relay log)其中比较重要的是bin log归档日志,redo log重做日志和undo log回滚日志。
2024-09-11 22:48:30
545
原创 一条SQL语句在MySQL中的执行过程
server层涉及一系列业务的组件;存储引擎层负责存储数据,提供读写接口等功能。MySQL的存储引擎是插件式的,一个数据库里的不同表可以用不同的存储引擎。
2024-09-10 14:03:46
445
原创 MySQL锁机制
页级:开销和加锁时间在表级锁和行级锁之间,会出现死锁表级:开销小、加锁快,不会出现死锁;锁定颗粒度大,发生锁冲突概率最高,并发度最低行级:开销大,加锁慢,会出现死锁;锁颗粒度最小,发生锁冲突概率最低,并发最高。
2024-09-10 13:50:45
534
原创 MySQL索引
"回表”就是当非聚簇索引的查询结果不能满足查询的目标字段要求,那么就会通过主索引的值回聚簇索引中进行查找;这个过程就回表。回表不仅仅只是多查了一次,还会带来随机I/O,导致效率变低。所以不要因为方便都用 select * from,避免不必要的回表操作,或者增加覆盖索引。覆盖索引指的是二级索引中包含了查询所需的所有字段,从而是查询仅通过访问二级索引就可以获得想要的信息,避免了回表。是一种现象。
2024-09-09 20:08:46
915
原创 MVCC面试题详解
并发环境下,写-写操作有加锁解决方案,但为了提高性能,InnoDB存储引擎提供MVCC,目的是为了解决读-写,写-读操作下不加锁仍能安全进行。MVCC的过程,本质就是访问版本链,并判断哪个版本可见的过程。该判断算法是通过版本上的trx_id与快照ReadView的若干个信息进行对比。MVCC的过程,本质就是访问版本链,并判断哪个版本可见的过程。该判断算法是通过版本上的trx_id与快照ReadView的若干个信息进行对比。
2024-09-07 20:49:40
1035
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人