摘要: MySQL 日志体系非常完善,分为多种类型,用于不同场景:故障恢复、性能优化、审计追踪等。 Error Log:错误日志。记录启动,运行,关闭过程中的问题。 General Log:通用查询日志,记录所有SQL查询。 Slow Query Log:慢查询日志,记录执行时间超过阈值的语句。 Bin l 阅读全文
posted @ 2026-02-05 15:58 acccccccccc 阅读(7) 评论(0) 推荐(0)
摘要: OOM全程Out Of Memory,意思是JVM里没有足够的空间供使用,并且垃圾回收器也没有垃圾可回收就会抛出这个error。 OOM原因 1.内存分配太少,可以通过修改JVM参数来修复。 2.未及时释放资源,造成内存泄露或内存溢出。 内存泄漏:使用完的资源未及时释放导致该空间无法回收,并且无法分 阅读全文
posted @ 2026-02-03 15:07 acccccccccc 阅读(5) 评论(0) 推荐(0)
摘要: 1.语言层级 sychornized是JVM内置关键字,lock是jdk类。 2.获取方式 sychornized自动获取/释放,lock需要手动lock()或unlock()。 3.释放时机 sychornized方法结束后自动释放,lock需要在finally里手动unlock()。 4.响应中 阅读全文
posted @ 2026-02-03 10:36 acccccccccc 阅读(2) 评论(0) 推荐(0)
摘要: 事务的特性(ACID) 原子性(Atomicity):事务是最小的执行单位,不允许分割,要么全都执行,要么全不执行。 一致性(Consistency):执行事务前后,数据保持一致。 隔离性(Isolation):并发访问数据库时,一个用户的事务不应该被其他事务干扰,各并发事务之前的数据库是独立的。 阅读全文
posted @ 2026-02-02 15:01 acccccccccc 阅读(3) 评论(0) 推荐(0)
摘要: MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种“用空间换时间”的并发策略:同一行数据在数据库里保留多个版本,让读事务与写事务互不阻塞,从而在高并发场景下既能保证隔离性,又能获得接近无锁的读性能。 1.核心思想 写操作不覆盖旧数据,而是生成新版本; 阅读全文
posted @ 2026-02-02 10:35 acccccccccc 阅读(32) 评论(0) 推荐(0)
摘要: Spring Boot 自动配置(Auto-configuration) 是其"约定大于配置"理念的核心实现。它能根据类路径依赖、环境变量、配置文件等上下文,自动推断并注册所需的 Bean,无需开发者手动编写 XML 或 Java Config。 1.启动入口 SpringBoot项目中有一个@Sp 阅读全文
posted @ 2026-01-30 14:51 acccccccccc 阅读(4) 评论(0) 推荐(0)
摘要: MySQL 与 Redis 的双写一致性是缓存架构的核心难题。由于网络延迟、故障回滚、并发竞态等因素,两者只能追求最终一致性,无法保证强一致性(除非牺牲性能用分布式锁)。 什么是双写一致性 在分布式系统中,双写一致性主要指在一个数据同时存在于缓存(如Redis)和持久化存储(如数据库)的情况下, 任 阅读全文
posted @ 2026-01-30 11:39 acccccccccc 阅读(48) 评论(0) 推荐(0)
摘要: 在JDK8中,HashMap的底层有数组+链表变为数组+链表+红黑树。主要是为了解决哈希冲突极端情况下的性能退化问题,同时也是一种防御性编程手段。 红黑树 红黑树有四大特征: 1.节点非黑即红。 2.根节点和叶子节点为黑色。 3.每个红色节点必须有两个黑色子节点。不能有两个连续的红色节点。 4.从任 阅读全文
posted @ 2026-01-30 09:22 acccccccccc 阅读(19) 评论(0) 推荐(1)
摘要: volatile是Java并发编程中的轻量级同步机制,核心解决可见性和有序性的问题 三大特性 1.可见性:修改立即可见。 线程A修改了,线程B立即可见。 2.有序性:禁止指令重排。 代码执行的顺序就是执行顺序。 3.不保证原子性:符合操作仍可能出错。 i++这种操作仍需要sychornized或At 阅读全文
posted @ 2026-01-29 16:33 acccccccccc 阅读(20) 评论(2) 推荐(0)
摘要: JVM内存结构 1.程序计数器(PCR)(线程私有) 记录当前线程执行位置(字节码指令的地址),确保线程切换后能恢复到正确位置。 2.堆(Heap)(线程共享) 堆是JVM内存中最大的一块,用于存储对象和数组。通过new关键字创建的对象都放在堆中, 堆中的对象需要考虑线程安全的问题,因为存在垃圾回收 阅读全文
posted @ 2026-01-29 09:08 acccccccccc 阅读(19) 评论(0) 推荐(0)