- 博客(1019)
- 资源 (1)
- 收藏
- 关注

转载 2025年Java面试题
AOF和RDB是两种redis持久化的机制。重写和重载的区别ssm原理servlet生命周期自定义注解说一说sleep和wait的区别map的遍历方式有几种线程有几种创建方式说一下图论算法int有4个字节mysql的联合索引linux怎么查看端口号netstat -tunpl | grep 端口号fegin怎么暴露出来 fegin有哪些注解hashMap不是线程安全的,ConcurrentHashMap 是线程安全的 redis和mysql的事物有那么一些不一样redis幂等
2022-06-25 09:23:02
2793
转载 bin log主从复制原理
MySQL主从复制流程:主库将DDL/DML操作写入binlog,从库IO线程请求并接收binlog后写入本地relaylog,再由SQL线程重放relaylog事件,确保主从数据同步。整个过程包含binlog传输和事件重执行两个关键环节。
2025-08-21 00:13:14
6
转载 bin log写入机制
MySQL事务执行过程中,Binlog写入流程分为三步:首先DML操作变更会暂存到Binlog内存缓冲区;其次在事务提交时将缓冲区内容写入操作系统的PageCache内存区域;最后根据sync_binlog参数配置的刷盘策略,决定何时将PageCache数据持久化到磁盘。该机制通过内存缓冲和延迟刷盘策略平衡了性能与数据可靠性。
2025-08-16 23:19:47
13
转载 binlog三种模式的优缺点?
本文分析了MySQL三种二进制日志格式的优缺点。statement格式日志量小但可能导致主从不一致;row格式能确保数据一致性但日志量大且可读性差;mixed格式兼顾存储空间和一致性,但增加了模式切换的复杂性。不同格式在日志量、数据一致性和实现复杂度方面各有权衡,需根据具体场景选择合适的格式。
2025-08-16 21:12:54
16
转载 bin log日志格式
MySQL提供了三种二进制日志格式:statement记录SQL语句,节省空间但可能导致主从不一致;row记录行数据变更,保证一致性但日志量大;mixed混合模式,默认用statement格式,在必要时自动切换为row格式,兼具空间效率和数据一致性优势。这三种格式各有特点,mixed模式在性能和可靠性间取得了平衡。
2025-08-16 20:54:22
12
转载 binlog的作用?
MySQL的binlog(二进制日志)是数据库主从复制的核心组件,实现了主库向从库的数据同步。它通过记录所有数据修改操作,支持从库重放这些日志来保持数据一致性。同时,binlog还提供时间点恢复功能,可用于数据库增量恢复。此外,完整记录数据库变更的特性使其成为安全审计和操作追踪的重要工具,便于追踪数据变更历史。
2025-08-16 20:09:02
15
转载 事务四大特性中的一致性是什么?
数据库事务的四大特性(ACID)中,一致性(Consistency)是核心目标。它要求事务执行前后,数据库必须保持完整性约束。其他三个特性(原子性、隔离性、持久性)共同保障一致性:原子性确保事务完整执行,隔离性防止并发干扰,持久性保证结果永久存储。这种协同机制确保数据始终符合预定义的业务规则和约束条件。
2025-08-16 19:43:05
4
转载 mvcc的作用?
该文介绍了数据库事务的并发控制机制,主要特点包括:支持多事务并行读取数据而不互相阻塞;读操作和写操作互不干扰;每个事务都看到数据库在特定时间点的数据快照。这种机制通过维护数据版本快照实现了读写的并发执行,既保证了数据读取的高效性,又确保了事务的隔离性。
2025-08-10 21:57:00
14
转载 redis的惰性删除是什么?
摘要:文章介绍了惰性删除策略,即在通过get方法访问数据时,才会检查key是否过期。若发现过期key,则立即删除该数据并释放内存空间。这种延迟处理的机制能有效减少CPU开销,提高系统整体性能。
2025-08-05 00:24:05
21
转载 undo log存储的内容是什么?
MySQL的Undo日志主要记录数据修改前的旧值、事务ID、回滚指针和操作类型(insert/update/delete),用于实现事务回滚和多版本并发控制(MVCC)。每条Undo记录保存修改前的数据镜像,通过回滚指针形成版本链,支持事务回滚和一致性读。不同操作类型的Undo记录格式不同,但都包含必要信息以保证事务的原子性和隔离性。
2025-08-03 16:04:21
18
转载 redo log和bin log的区别?
MySQL的日志系统中,Redo Log和Binlog具有不同功能。Redo Log是InnoDB引擎层的物理日志,记录数据页的修改,确保事务持久性和崩溃恢复。Binlog是Server层的逻辑日志,记录SQL语句或行数据变更内容,主要用于主从复制和数据恢复。两者分别在存储引擎和服务器层面发挥作用,共同保障MySQL的数据安全性和高可用性。
2025-08-03 15:46:38
18
转载 undo log和bin log的区别?
Undo log和Binlog是MySQL中两种不同的日志机制。Undo log由InnoDB存储引擎实现,记录数据修改前的值,主要用于事务回滚和MVCC实现。Binlog由MySQL Server层维护,记录已提交事务的SQL语句或行变更内容,主要用于主从复制和数据恢复。两种日志在存储层面和应用场景上存在明显差异,共同保障了MySQL的数据一致性和可靠性。
2025-08-03 15:30:19
17
转载 undo log和redo log的区别?
本文对比了undolog和redolog两种日志机制的核心特性。undolog作为逻辑日志,记录修改前的数据以支持事务回滚和MVCC实现,采用随机写入方式且不保证持久性;而redolog作为物理日志则记录修改后的数据,通过顺序写入确保已提交事务的持久性和系统崩溃后的恢复能力。两类日志分别服务于不同的数据库功能需求。
2025-07-24 00:54:24
34
转载 undo log,redo log,bin log的区别是什么?
MySQL日志系统由三种主要日志组成:InnoDB存储引擎层的undo log(逻辑日志,用于事务回滚和MVCC)和redo log(物理日志,确保崩溃恢复和事务持久性),以及Server层的binlog(逻辑日志,支持主从复制和数据恢复)。这三类日志协同工作,共同保障MySQL的数据一致性和可靠性。
2025-07-14 22:19:06
27
转载 什么是线程安全?
多线程环境下保证数据一致性的关键在于确保线程安全,即当多个线程同时访问共享数据时,通过同步机制防止数据被意外修改或出现不一致状态。这需要通过锁机制或其他同步技术来控制对共享资源的访问,从而维护数据的正确性和完整性。
2025-07-14 21:29:52
28
转载 synchronized关键字如何使用?
摘要:Java中synchronized的5种用法:1)public synchronized锁定当前对象实例;2)public static synchronized锁定类的Class对象;3)方法内synchronized(this)锁定当前实例;4)方法内synchronized(类.class)锁定Class对象;5)方法内synchronized(final Object)使用自定义锁对象。不同方式对应不同粒度的线程同步控制,需根据场景选择合适的锁机制。(135字)
2025-07-14 21:25:29
41
原创 idea分支旁边蓝色箭头是什么意思?
摘要:当其他开发者在dev2分支提交代码后,您需要同步最新代码。在Git中,选择Pull操作来更新本地dev2分支,确保与远程仓库保持同步。这一操作能获取其他开发者提交的变更,避免代码冲突。
2025-07-10 01:37:32
188
原创 idea撤回已经提交的git内容
摘要 本文介绍了如何撤回未推送至远程仓库的本地Git提交。操作步骤包括:右键点击目标提交注释(如"2222"),选择"Undo Commit"确认;或通过Git菜单选择提交代码后右键"Rollback"回滚。需要注意的是,该方法仅适用于未推送的本地提交,若代码已推送至远程仓库,则需修改后重新提交。撤回后代码将还原至提交前状态。
2025-07-10 01:32:59
511
原创 idea中查看历史git提交的日志
摘要:在Git中切换至Local→dev2分支后,即可查看该分支的所有提交记录与内容变更。操作时需使用分支切换命令,系统将显示dev2分支特有的代码修改和提交历史。该流程是开发中查看特定分支工作内容的常规方法,适用于代码审查或版本比对场景。(96字)
2025-07-10 01:13:24
292
原创 git怎么删除分支
在IDEA中删除Git分支的操作方法:1)删除本地dev分支:在Local目录下右键选择dev分支并删除,不会影响远程分支;2)删除远程dev分支:在Remote目录下右键删除dev分支,此时远程仓库将只保留master分支;3)也可直接通过码云平台删除远程dev分支。这三种方式都能有效清理分支,其中前两种通过IDEA客户端操作,第三种通过网页端操作。
2025-07-10 01:04:51
394
原创 idea中合并git分支
本文介绍了Git代码合并与冲突解决的基本流程:1) 合并dev到master前需先pull最新代码;2) 通过右键菜单将dev合并到本地master,再push到远程;3) 提交时若遇冲突,可对比三方内容进行选择性合并(保留双方/己方/他人修改);4) 解决冲突后先apply再push。操作要点包括:确保分支最新、正确处理合并冲突、仔细核对修改内容。
2025-07-10 00:46:51
629
原创 idea中使用git
文章摘要:本文介绍了Git分支管理在IDEA中的操作流程。主要包括:1)克隆远程仓库到本地并导入IDEA;2)区分Local和Remote分支;3)通过Fetch获取他人新建分支;4)使用Checkout切换本地开发分支;5)通过Pull获取他人代码;6)代码提交流程:本地修改→Pull→Commit→Push到远程。重点讲解了如何同步远程分支变更、创建本地开发分支以及代码提交的完整流程,适合开发者掌握基本的Git协作操作。
2025-07-10 00:19:29
760
原创 码云创建分支
摘要(148字) 本文介绍了Git分支创建的基本流程:1)选择要分支的起点(通常是master分支);2)点击新建分支功能;3)输入新分支名称(如dev)并确认;4)系统会自动将master分支代码复制到新分支;5)操作完成后,在仓库分支列表中即可看到新创建的dev分支和原有的master分支。整个过程实现了代码版本的隔离开发,为多人协作提供了便利。
2025-07-09 23:42:35
193
原创 两种方式清除已经保存的git账号密码
摘要 清除TortoiseGit认证数据的步骤如下: 任意选择一个文件夹 右键点击选择"TortoiseGit"菜单 进入"设置"选项 选择"已保存的数据" 点击"认证数据" 选择"清除"按钮 最后点击"确定"完成操作 该方法可快速清除Git的认证信息,适用于需要更换账号或解决认证问题的场景。
2025-07-09 23:19:11
465
原创 码云创建仓库并上传代码
如何在码云(Gitee)创建和使用Git仓库:首先在码云平台新建仓库并初始化README文件;接着复制仓库地址,在本地电脑选定文件夹右键选择Git克隆;输入账号密码后即可完成克隆操作;最后将新建项目文件复制到该克隆文件夹即可实现代码托管和协作开发。整个过程简单易行,适合研发团队进行版本控制和项目管理。
2025-07-09 23:11:05
518
原创 git入门之安装tortoisegit
本文介绍了TortoiseGit的安装及中文语言设置流程:首先下载TortoiseGit主程序,再下载中文语言包;安装时需先装主程序后装语言包;设置中文界面时,在任意文件夹右键选择TortoiseGit→设置→语言选项中选择简体中文并确认即可完成本地化。整个安装配置过程简明清晰。
2025-07-09 22:26:58
363
转载 binlog的缺点
MySQL的binlog日志存在若干限制:占用较多磁盘空间;仅能恢复已记录的binlog内容;若binlog损坏可能导致恢复失败;高并发时主从复制易出现延迟。这些限制在数据库运维中需重点关注。
2025-07-06 18:15:01
20
转载 binlog的优点
MySQL数据库恢复与同步机制:提供基于时间点的数据恢复能力,通过主从复制将主库binlog变更应用到从库。采用追加写入方式优化性能,降低磁盘IO压力。支持配置日志过期时间和文件大小,并可将数据同步至第三方系统。
2025-07-06 17:38:27
36
转载 jwt的结构?
JWT(JSON Web Token)由三部分组成,用点号(.)分隔:1)header头,包含签名算法和令牌类型;2)负载(payload),存储实际传输数据;3)签名,用于验证令牌完整性,防止篡改。这种结构简单高效,header定义加密方式,负载承载业务数据,签名确保安全性,广泛应用于身份认证等场景。
2025-07-05 18:48:12
28
转载 jdk和jre的区别?
JDK是Java开发工具包,包含JRE及编译器、调试器等开发工具,适用于Java程序开发。JRE是Java运行环境,仅包含JVM,用于运行已编译的Java程序。开发需JDK,运行只需JRE即可。两者功能互补,JDK包含完整的JRE功能。
2025-07-05 18:38:17
22
原创 springboot中使用线程池
本文介绍了线程池的使用场景和实现方法。通过Spring Boot配置创建了一个包含10个核心线程的线程池,设置了任务队列和拒绝策略。在示例中,三个异步任务(获取角色、用户和菜单)通过线程池并行执行,无需相互等待,展示了异步编程的优势。代码演示了如何通过@Bean配置线程池,并在Controller中使用execute方法提交任务,实现多线程并发处理。这种方案适用于需要提高系统吞吐量、避免任务阻塞的场景。
2025-07-05 18:23:32
284
转载 多线程和高并发的区别?
多线程和高并发是不同概念:多线程指单个进程内多个线程并行执行不同任务(如异步调用多个接口),提高程序效率;高并发则指短时间涌入大量请求(如抢票场景),考验系统承载能力。高并发场景会运用多线程技术,但二者本质不同。应对高并发需综合采用集群部署、缓存、分库分表、消息队列等技术手段,提升系统吞吐量(QPS)并降低响应时间。
2025-06-29 18:34:41
32
转载 布隆过滤器底层原理?
布隆过滤器是一种基于多哈希函数和位数组的概率型数据结构,用于快速判断元素是否可能存在于集合中。它通过初始化全0的二进制数组,对元素进行多次哈希计算并将对应位置置为1。查询时若所有哈希位均为1则判定可能存在,否则肯定不存在。该结构具有空间效率高的优点,但存在一定误判率,可通过增加哈希函数数量来降低误判概率。布隆过滤器适用于允许少量误判的大规模数据查重场景。
2025-06-29 17:55:41
22
转载 spring的原理?
Spring框架的核心原理是IoC(控制反转/依赖注入)和AOP(面向切面编程)。IoC将对象的创建、依赖注入和生命周期管理交由Spring容器处理,开发者无需手动实例化对象。AOP则通过动态代理技术,在不修改原有方法逻辑的前提下,在方法执行前后添加增强操作,实现横切关注点的模块化。这两种机制共同构成了Spring轻量级、非侵入式的编程模型。
2025-06-29 17:36:59
22
原创 你会怎么设计一个订单支付超时取消的场景?
文章摘要: 本文介绍了一个订单超时自动取消的设计方案。系统通过订单表设计(包含状态、版本号等字段)和联合索引优化查询效率。采用死信队列实现30分钟延迟检查未支付订单,配合分布式锁和乐观锁机制(版本号控制)确保并发安全。若取消失败会进行3次重试并发送预警通知,同时设置每小时扫描的定时任务作为MQ故障时的兜底方案,确保未支付订单最终被取消。该方案兼顾了消息队列的实时性和定时任务的可靠性,形成双重保障机制。
2025-06-29 17:17:49
317
原创 pom怎么引入另一个项目
本文介绍了两个Maven项目(demo1和demo2)的依赖关系配置过程。首先在demo1非Web项目中执行maven clean清理target目录,再通过maven install将生成的jar包同时部署到本地target目录和本地Maven仓库。然后在demo2项目的pom.xml文件中添加对demo1的依赖引用配置,即可在demo2项目中直接使用demo1的类。整个过程展示了Maven项目间依赖管理的基本使用方法。
2025-06-29 16:33:53
213
转载 maven package和maven install的区别?
Maven中package和install命令的区别:package仅将项目打包到target目录,而install不仅打包还会将产物安装到本地仓库供其他项目依赖使用。前者适用于单独项目构建,后者可实现项目间共享。
2025-06-29 15:34:25
50
转载 mysql连接数和mysql连接池的区别?
MySQL连接数与连接池的区别:连接数是服务器端资源,每个连接消耗服务器CPU和内存;连接池则是客户端机制,预先创建并复用连接,减少频繁建立/断开连接的开销。连接池通过共享连接提高性能,而直接连接会持续占用服务器资源。
2025-06-29 15:25:42
21
转载 什么是mysql连接数?
MySQL连接数由max_connections参数控制,表示服务器能同时处理的客户端连接数量。每个连接会消耗内存和CPU资源,连接数过多可能导致性能下降。此外,连接的建立和断开也会带来额外开销。因此需要合理配置连接数,在满足业务需求的同时避免资源过度消耗。
2025-06-29 15:24:38
22
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人