自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 Java 基础八股

Java基础核心问题摘要:==与equals区别、equals与hashCode关系、字符串类比较、String不可变性

2025-10-26 06:45:00 326

原创 MySQL 八股

MySQL 核心知识点摘要:存储引擎、索引、事务特性、隔离级别、索引失效场景

2025-10-25 01:36:32 841

原创 【JUC】核心知识点归纳

本文梳理了线程基础(4种创建方式与6种状态流转)、线程安全的3大特性(原子性、可见性、有序性)、线程池的优势(资源复用、管理、响应提速)以及ThreadLocal的线程隔离机制(原理与内存泄漏防范)。重点对比了synchronized(JVM内置锁,支持锁升级)与ReentrantLock(基于AQS,支持公平/非公平锁)的特性差异,为面试和开发提供核心知识参考。

2025-10-18 21:01:17 754

原创 【Java 集合】核心知识点梳理

Java 集合是用于存储、管理和操作一组对象的容器,核心作用是替代数组的局限性,提供更灵活、高效的数据存储方案。建议结合 “原理 + 面试题” 的方式复习,比如通过 “HashMap 的 put 流程” 串联哈希计算、冲突处理、扩容、树化等多个知识点,同时动手写简单示例(如 ArrayList 扩容测试、HashMap 去重测试),加深理解。

2025-10-18 20:52:08 756

原创 【Java 基础】核心知识点梳理

本文系统梳理了Java核心基础知识点,重点包括: Java四大特性:跨平台性(JVM实现)、面向对象、自动内存管理、安全性; JDK/JRE/JVM关系:JDK包含JRE和开发工具,JRE包含JVM和核心类库; 基本数据类型:8种类型及其内存占用和范围; 面向对象三大特性(封装、继承、多态)和六大设计原则(如单一职责、开闭原则等)。 文章层次清晰,通过表格和代码示例帮助理解,适合Java基础复习和面试准备。

2025-10-18 20:37:19 598

原创 【Redis】缓存穿透、击穿、雪崩场景分析

本文探讨了Redis缓存中的三大常见问题:穿透、击穿和雪崩。针对缓存穿透问题,提出了缓存空对象和使用布隆过滤器两种解决方案;对于缓存击穿,介绍了互斥锁和逻辑过期两种应对策略;关于缓存雪崩,分析了其成因并提供了相应的缓解措施。文章还提供了具体的Java代码实现示例,帮助开发者理解如何在实际项目中应用这些解决方案。这些方法能有效提升系统稳定性和性能,避免因缓存问题导致的系统故障。

2025-10-17 18:00:00 1011

原创 【Redis】缓存穿透原因和解决

Redis缓存穿透是指请求不存在的数据导致每次请求都直接访问数据库的问题。本文分析了缓存穿透的原因(恶意攻击、前端bug、用户误操作)及其对数据库性能的影响,并介绍了两种解决方案:缓存空对象(简单易实现,但占用缓存空间)和布隆过滤器(高效但存在误判率)。文章通过项目实例展示了缓存空对象的实现方式,对比了两种方案的优缺点,并建议根据业务场景选择合适方案。最后强调合理设置空值过期时间、监控异常请求和结合其他防护措施的重要性。

2025-10-17 08:00:00 1416

原创 【Redis】缓存热点数据

本项目使用Redis作为缓存层,采用经典的Cache-Aside模式提升系统性能。主要缓存店铺信息和店铺类型数据,通过统一键命名规范(如"cache:shop:"前缀)和合理过期时间设置(30分钟)实现高效缓存。查询时先检查Redis,命中则直接返回,未命中则查询数据库后写入缓存。实现中特别注意空值处理和JSON序列化,并提出了缓存预热、粒度控制等优化建议。该方案显著提高了响应速度,减轻了数据库压力,且易于扩展新数据类型。

2025-10-16 18:00:00 1183

原创 【Redis】Cache更新策略

本文总结了高并发系统中缓存与数据库一致性的解决方案。推荐采用Cache Aside Pattern:先更新数据库再删除缓存,避免脏数据和保证最终一致性。同时提出增强策略包括延迟双删和异步更新缓存,并分析了不推荐的先删缓存再更新数据库方案的风险。面试要点强调合理设置过期时间、监控命中率,提供了清晰的答题模板,帮助开发者掌握缓存更新的核心策略。

2025-10-16 08:00:00 987

原创 【Redis】缓存读/写操作流程

Redis缓存更新策略解析 本文详细介绍了Redis缓存读/写操作流程及常见问题。重点分析了三种缓存更新策略:1)先更新缓存再更新数据库;2)先更新数据库再删除缓存;3)先删除缓存再更新数据库。推荐"先更新数据库再删除缓存"策略,因其实现简单、避免更新失败且能保证最终一致性。对于高一致性场景,建议采用"延迟双删"或"异步更新缓存"方案。文章还探讨了缓存淘汰机制、线程安全问题和分布式锁解决方案。最后给出了实际应用中的选择建议,包括合理设置过期时间、缓

2025-10-15 22:00:00 2709 2

原创 【Redis】实现用户登录机制总结

本文总结了基于Redis实现的用户登录机制,主要包括:1) 使用Redis替代传统Session实现分布式会话管理;2) 详细登录流程包含验证码校验、用户查询/创建、Token生成和存储;3) 采用双拦截器设计实现登录验证和Token自动刷新;4) Redis存储设计采用Hash结构存储用户信息并设置过期时间;5) 解决了分布式环境下用户状态共享和登录状态失效问题。项目通过Redis缓存减少数据库压力,提升系统扩展性和用户体验,同时提供了数据类型一致性和安全考虑等最佳实践建议。

2025-10-15 17:43:55 498

原创 微头条业务流程

用户登录、获取用户信息、用户注册、微头条页面的导航栏回显、分页查询头条信息、查询头条详情、以及文章的发布、修改、删除和回显等业务流程。

2025-01-19 18:38:35 1360

原创 【MySQL 进阶之路】拓展 - Java 常见锁机制

以下是几个与 **Java 后端开发** 相关的面试问题和 **锁机制** 的相关表格,帮助更好地理解常见的锁类型和应用场景。这些表格提供了多维度的比较和解答,帮助您在面试中全面理解和应用不同的锁机制和并发控制策略,尤其在 Java 后端开发中会涉及到这些问题。的相关表格,帮助更好地理解常见的锁类型和应用场景。

2024-12-10 19:13:27 675

原创 【MySQL 进阶之路】基础语法及优化技巧

DML 是数据库操作语言的子集,用于数据的增、删、改、查四个基本操作。熟悉并掌握 MySQL 的 DML 基础语法对于数据库开发至关重要。通过合理运用 `INSERT`、`SELECT`、`UPDATE`、`DELETE`,以及各种查询优化技巧,可以显著提高数据库的性能和查询效率。在实际开发过程中,合理的索引设计、联表查询优化以及事务管理是提升应用性能和数据一致性的重要手段。

2024-12-10 18:58:08 1249

原创 【MySQL 进阶之路】存储引擎和SQL优化技巧分析

本文详细对比了InnoDB和MyISAM存储引擎的异同,分别阐述了它们在事务支持、锁机制、查询优化等方面的特点及应用场景。同时,探讨了如何识别和解决数据库中的死锁问题、常用的SQL优化技巧以及不同事务隔离级别的区别。

2024-12-09 21:48:47 929

原创 【MySQL 进阶之路】了解 性能优化 与 设计原则

本文全面探讨了数据库优化和设计中的关键概念与技巧。首先介绍了B+树的结构优势,如何通过减少层级和提高查询效率优化数据库。接着讲解了最左前缀原则在查询优化中的作用,以及索引覆盖如何提升查询性能。进一步分析了MySQL中的AUTO_INCREMENT属性及其工作原理,深入探讨了数据库范式的规范化设计及其对数据一致性和冗余减少的影响。最后,提出了优化数据库查询性能的多种策略,如创建合适的索引、避免不必要的查询操作和合理的表设计。

2024-12-09 21:35:20 1019

原创 【MySQL 进阶之路】事务并发情况分析

在MySQL的事务并发控制中,不同的事务操作对数据产生不同的锁定效果。通过合理的锁机制控制,MySQL能够有效保证事务的隔离性,避免数据冲突和不一致。理解事务的并发行为和锁粒度,有助于开发人员在设计数据库操作时做出更好的决策,尤其是在处理高并发和复杂事务时,能够提升系统的效率和稳定性。

2024-12-09 19:05:08 1112

原创 【MySQL 进阶之路】索引失效的11种情况

在MySQL的查询优化中,索引是一项至关重要的技术,它能够大大提升数据检索的效率。本文将讨论这11种常见情况,帮助开发者更好地理解索引的使用及优化。

2024-12-09 17:55:08 3105

原创 【MySQL 进阶之路】事务隔离级别

数据库的事务隔离级别(Transaction Isolation Levels)决定了事务之间如何互相隔离,并发执行时不同事务之间的可见性。每个级别在数据一致性和并发性之间做出了不同的权衡。根据 SQL 标准,事务隔离级别有四种:读未提交、读已提交、可重复读、和串行化。

2024-12-07 18:41:27 1022

原创 【MySQL 进阶之路】InnoDB引擎详解

在 MySQL 的众多存储引擎中,InnoDB 是最常用的引擎之一,它支持事务、行级锁、外键等功能,适用于高并发、高数据完整性要求的场景。本篇文章将从多个维度深入解析 InnoDB 存储引擎的内部结构和原理,帮助大家更好地理解其工作机制,从而更高效地进行性能调优和问题排查。

2024-12-07 18:19:35 1094

原创 【Spring Boot】自动装配机制详解

本文讲解了Spring DI的工作原理,介绍了通过XML配置和注解(@Autowired)进行依赖注入。Spring Boot通过@EnableAutoConfiguration和AutoConfigurationImportSelector自动装配所需的Bean,实现自动注入。

2024-12-06 18:10:23 1739

原创 【MySQL 进阶之路】锁详解

锁在数据库中是用来保证数据一致性和防止并发冲突的一种机制。MySQL 中的锁可以分为不同的类型和粒度,每种锁都有特定的使用场景和特点。了解锁的类型、作用以及如何避免锁带来的问题是提升数据库性能和避免数据冲突的关键。

2024-12-06 18:02:46 1358

原创 【MySQL 进阶之路】表级锁、行级锁详解

行级锁和表级锁是数据库管理系统中用于控制并发访问的两种常见锁机制。它们主要在锁粒度、性能、并发性等方面有所不同。下面将详细讲解它们的概念和区别。

2024-12-06 16:16:57 863

原创 数组常见查找算法

本文概述了五种查找算法及其时间复杂度:顺序查找(O(n))、二分查找(O(log n))、插值查找(O(log n)至O(n))、分块查找(介于O(log n)和O(n))、哈希查找(理想情况下接近O(1))。

2024-12-05 23:53:39 668

原创 【MySQL 进阶之路】元数据锁(MDL)详解

MDL 锁是 MySQL 中一种确保表元数据一致性的机制,它通过协调 DML 和 DDL 操作的执行,防止数据和结构的冲突。在高并发环境下,MDL 锁有时会对性能产生一定影响,了解其工作机制及使用场景对于优化数据库性能和避免死锁至关重要。

2024-12-05 18:07:45 1958

原创 【JavaSE】常见面试问题

本文总结了 Java 编程面试中常见的技术问题,涵盖了多态、接口与抽象类、集合框架、线程安全、垃圾回收、异常处理等核心概念,并简要阐述了每个概念的基本含义与应用,帮助读者为面试做好充分准备。

2024-12-04 22:37:52 548

原创 【MySQL 进阶之路】SQL 优化

在现代数据库的高并发环境下,SQL 查询优化成为提升系统性能和响应速度的关键。本文将总结常见的 SQL 优化策略,包括插入优化、主键设计、排序优化、`GROUP BY` 优化等,帮助你在面对大规模数据时,做到高效查询和数据处理。

2024-12-04 22:20:54 2405 2

原创 【MySQL 进阶之路】索引的使用

在数据库管理系统(DBMS)中,索引是提高查询效率的关键机制之一。MySQL索引优化是指通过设计、调整和选择合适的索引策略,以提高数据库的查询性能和降低资源消耗。

2024-12-03 20:24:55 1046 2

原创 【MySQL 进阶之路】SQL 性能分析

MySQL 性能优化是一个不断调优的过程,从硬件配置到查询结构优化再到索引设计,都需要全面考虑。利用EXPLAIN分析执行计划、慢查询日志、索引优化、内存调优等手段,可以有效提升数据库的性能。在高并发、大数据量的场景下,分库分表、查询缓存、连接优化等技术也是不可或缺的工具。

2024-12-03 20:06:22 904 3

原创 【Java基础】笔记

Java基础笔记记录

2024-12-02 17:10:28 648

原创 【MySQL 进阶之路】索引概述

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。你可以简单理解为“排好序的快速查找数据结构”,满足特定查找算法。

2024-12-02 17:08:44 995

原创 【MYSQL】七种 SQL JOINS 的实现

【MYSQL】七种 SQL JOINS 的实现本笔记实现七种常见的 JOIN 操作,更高效地编写 SQL 查询。

2024-11-20 23:21:33 529 1

原创 【MYSQL】Where和Having的区别

WHERE子句:在分组前过滤记录,适用于单个记录的条件,通常性能更好。HAVING子句:在分组后过滤记录,适用于分组后的聚合结果,性能可能稍差。

2024-11-19 22:47:53 520

原创 C语言指针——操作符

【代码】C语言指针——操作符。

2024-11-06 14:43:41 414

原创 苍穹外卖学习记录

苍穹外卖学习记录

2024-11-06 14:43:08 1258

转载 【Spring IOC】分析 Bean 的定义、注册、获取

首先在Bean注册时是注册了这个类的信息,而不会直接把实例化信息注册到Spring容器中。那么就需要修改BeanDefinition中的属性Object为Class,使其能够直接实例化对象到Spring容器中,而且判断其是否为单例对象在容器中是否重复。完成了Spring容器的创建,要想进一步实现IOC,需要将 Spring Bean 容器完善起来。

2024-11-04 21:53:54 66

原创 Springboot项目报错记录

报错笔记

2024-11-03 19:29:55 485

原创 【Spring IOC】实现一个简单的 Spring 容器

一个 Spring 容器的注册,归根结底是通过进行注册的,再通过进行管理分配,一个 BeanFactory 可以管理多个 BeanDefinition。

2024-11-02 18:38:16 440

原创 Java并发:乐观锁(Optimistic Locking)

乐观锁是一种并发控制策略,主要用于多用户系统中防止数据的并发修改冲突。与悲观锁相比,乐观锁假设数据不会经常发生冲突,因此在读取数据时不加锁,在更新数据时才检查数据是否已被其他事务修改。

2024-11-01 18:19:39 516

原创 【Spring MVC】DispatcherServlet 请求处理流程

Spring MVC 是 Spring 框架的一部分,用于构建 Web 应用程序。它遵循 MVC(Model-View-Controller)设计模式,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个部分。

2024-10-31 20:40:31 2102

MySQL 思维导图+学习复习思路

内容概要:本文详细介绍了MySQL的基本操作(DML:增删改查)及相关语法,包括INSERT、SELECT、UPDATE、DELETE的具体用法和高级技巧,此外,深入讲解了各种联表查询算法。同时包括MYSQL逻辑结构(数据库、表、字段、索引)、事务处理(ACID特性、BEGIN、COMMIT、ROLLBACK)、SQL优化(索引使用、查询优化、执行计划分析。 使用场景及目标:①掌握MySQL中DML的基本语法及高级用法;② 掌握MySQL的逻辑结构:了解数据库、表、字段和索引的基本概念及其作用;③ 理解事务处理机制:学习事务的ACID特性,掌握BEGIN、COMMIT和ROLLBACK语句的使用,理解事务隔离级别。④ 掌握MySQL的逻辑结构:了解数据库、表、字段和索引的基本概念及其作用;⑤ 理解MySQL的锁机制;⑥ 掌握SQL优化技巧:学习如何通过合理使用索引、优化查询语句和分析执行计划来提高查询性能。⑦ ③ 理解联表查询的内部工作机制:深入理解MySQL在执行联表查询工作机制。 阅读建议 在学习过程中,重点理解各种查询语法的实际应用场景,尝试编写和优化实际查询语句,加深理解。

2024-12-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除