自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 问答 (1)
  • 收藏
  • 关注

原创 java.util.Collections中常用api

返回集合中的最大/最小值(自然顺序或通过。随机打乱列表顺序(常用于洗牌算法)。返回单元素或空集合(不可变)。进行自然顺序排序(元素需实现。二分查找(列表必须已排序)。是一个工具类,提供了大量。用指定对象填充所有元素。检查两个集合是否无交集。用于操作或返回集合(如。返回不可变集合视图(如。批量添加元素到集合。

2025-04-06 14:34:25 111

原创 JAVA对象创建过程和类加载过程

fill:#333;color:#333;color:#333;fill:none;加载验证准备解析初始化使用卸载。

2025-04-06 14:15:06 365

原创 票据剩余区间计算解决方案

【代码】票据剩余区间计算解决方案。

2025-04-06 13:03:03 356

原创 synchronized 锁升级机制详解

Java中的锁会经历一个从无锁到偏向锁,再到轻量级锁,最后到重量级锁的升级过程,这种优化称为或。

2025-04-05 19:16:48 800

原创 JVM 内存区域详解

Java 虚拟机(JVM)的内存区域划分为多个部分,每个部分有特定的用途和管理机制。

2025-04-05 19:15:40 696

原创 二级索引详解

二级索引(Secondary Index)是数据库系统中除主键索引外的附加索引结构,用于加速基于非主键列的查询操作。

2025-04-04 18:42:51 618

原创 Redis分布式锁详解

分布式锁是在分布式系统中实现互斥访问共享资源的重要机制。Redis因其高性能和原子性操作特性,常被用来实现分布式锁。

2025-04-04 18:41:45 305

原创 如何在Redis容量限制下保持热点数据

当数据库有100万条数据但Redis只能保存10万条时,需要智能的策略来确保Redis中存储的都是最常访问的热点数据。

2025-04-04 18:39:58 380

原创 Redis 数据类型详解

Redis 是一个高性能的键值存储系统,支持多种数据类型,每种类型都有其特定的使用场景和操作命令。

2025-04-04 18:39:27 781

原创 Java 线程池全面解析

corePoolSize, // 核心线程数maximumPoolSize, // 最大线程数keepAliveTime, // 空闲线程存活时间TimeUnit.MILLISECONDS, // 时间单位new LinkedBlockingQueue<>(capacity), // 工作队列Executors.defaultThreadFactory(), // 线程工厂new ThreadPoolExecutor.AbortPolicy() // 拒绝策略优点可精确控制所有参数。

2025-04-04 18:38:33 1306

原创 object中的方法,和String类常用api

String 是 Java 中最常用的不可变字符序列类,提供丰富的操作方法。

2025-04-04 18:35:54 696

原创 聚簇索引与非聚簇索引详解

✅ 事实:只有InnoDB有真正的聚簇索引,MyISAM的所有索引都是非聚簇的。✅ 事实:在InnoDB中主键默认是聚簇索引,但两者不是等价概念。✅ 事实:各有利弊,取决于具体查询场景。:“MyISAM也有聚簇索引”:“聚簇索引比非聚簇索引快”:“主键就是聚簇索引”

2025-04-04 18:35:14 397

原创 Docker 数据卷管理

Docker CLI:提供了简单易用的命令来管理数据卷,适合日常操作。Docker API:适合需要自动化管理的场景,如 CI/CD 流水线。高级管理:通过备份、恢复和权限管理,可以更好地保护和管理数据卷中的数据。通过本文,你应该能够熟练使用 Docker CLI 和 API 管理数据卷,并根据需求进行高级管理操作。希望本文对你的学习和工作有所帮助!

2025-03-23 12:39:35 473

原创 Docker 数据卷与文件挂载

数据卷:适合需要 Docker 管理数据生命周期的场景,如数据库数据、日志文件等。文件挂载:适合需要直接操作主机文件的场景,如配置文件、代码文件等。通过合理选择数据卷和文件挂载,可以更好地管理 Docker 容器中的数据持久化和共享需求。希望本文能帮助你更好地理解和使用 Docker 数据卷!

2025-03-23 12:36:45 718

原创 缓存穿透、雪崩、击穿

缓存穿透是指查询一个。

2025-03-22 17:57:53 542

原创 Java类的加载过程

Java 类的加载过程是 Java 虚拟机(JVM)将类的字节码文件加载到内存中,并转换为 JVM 可以使用的数据结构的过程。类的加载过程是 Java 程序运行的基础,它确保了类的正确性和安全性。以下是 Java 类加载过程的详细说明:类的加载是按需加载的,即在以下情况下会触发类的加载:类的加载过程可以分为以下三个阶段:加载阶段的任务是将类的字节码文件( 文件)加载到内存中,并生成一个 对象。链接阶段的任务是将类的二进制数据合并到 JVM 的运行时状态中,分为以下三个步骤:验证阶段的任务是确保加载的字节码

2025-03-22 17:48:19 572

原创 dockers数据卷挂载和文件挂载

在 Docker 中,和是两种常用的方式,用于将主机文件或目录与容器内的文件或目录进行映射。它们的主要目的是实现数据的持久化和共享。

2025-03-22 17:46:15 1015

原创 常用的 MyBatis 标签及其作用

MyBatis 提供了丰富的 XML 标签来定义 SQL 语句、参数映射、结果映射以及动态 SQL。

2025-03-21 11:13:31 679

原创 什么情况下spring的事务会失效

事务方法未被 Spring 代理。事务传播行为配置不当。异常未被正确捕获。事务管理器配置错误。事务方法被非事务方法调用。多线程环境下事务失效。数据库不支持事务。事务超时或只读配置不当。事务方法被 final 或 static 修饰。事务方法被嵌套调用。在开发中,需要根据具体场景仔细排查和解决这些问题,以确保事务的正确性。

2025-03-21 10:52:50 339

原创 Docker 部署 XXL-JOB

XXL-JOB 是一个分布式任务调度平台,核心设计目标是开发简单、易扩展、易维护。它支持多种任务调度模式(如定时任务、Cron 表达式任务等),并提供了丰富的管理界面和监控功能。可以通过挂载配置文件的方式自定义 XXL-JOB 的配置。

2025-03-19 10:38:59 983

原创 线程池学习

线程池(ThreadPool)是一种线程管理机制,它通过维护一组线程来执行任务,避免了频繁创建和销毁线程的开销。Java 提供了。

2025-03-19 10:34:43 818

原创 SpringBoot启动流程

Spring Boot 的启动流程是其核心机制之一,它通过简化配置和自动化加载,让开发者能够快速构建和运行 Spring 应用程序。以下是 Spring Boot 启动流程的详细步骤:Spring Boot 应用的启动通常从 方法开始,调用 方法。例如:2. Spring Boot 启动流程详解阶段 1:初始化 加载应用上下文初始器(ApplicationContextInitializer):加载应用事件监听器(ApplicationListener):推断应用类型:设置主配置类:发布

2025-03-18 11:19:22 693

原创 springboot的自动配置原理

开发者可以创建自己的自动配置类,并将其注册到。

2025-03-18 09:33:28 255

原创 @SpringBootApplication注解

是 Spring Boot 中最核心的注解之一,它是一个组合注解,用于简化 Spring Boot 应用的配置。通过使用这个注解,开发者可以快速启动一个 Spring Boot 应用,而无需编写大量的配置代码。下面我们来详细解析注解的作用和实现原理。

2025-03-18 09:32:28 336

原创 spring动态代理是在生命周期的哪个阶段实现的

Spring AOP 的动态代理是在 Bean 生命周期的。

2025-03-17 17:44:21 1321

原创 spring bean的生命周期和循环依赖

实例化属性赋值初始化(等)使用销毁(等)开发者可以通过实现特定的接口或配置方法来干预Bean的生命周期,从而实现更灵活的控制。如果你在面试中被问到这个问题,可以结合实际项目经验,谈谈你是如何利用Bean生命周期特性(如或自定义)来解决实际问题的,这样会让回答更有深度和说服力。这是一个非常好的问题!Spring使用三级缓存而不是二级缓存来解决循环依赖问题,主要是为了在保证功能正确性的同时,兼顾性能和设计的灵活性。下面我们来详细分析为什么需要三级缓存,以及二级缓存为什么不能满足需求。

2025-03-17 17:41:43 1434

原创 使用 Docker 部署 MySQL 8

MySQL 8 是 MySQL 数据库管理系统的最新版本,引入了许多新特性,如窗口函数、通用表表达式(CTE)、JSON 增强等。它广泛应用于 Web 应用、数据分析和企业级应用中。:将主机的配置文件挂载到容器。:将数据目录挂载到主机。# MySQL 配置文件示例[mysqld]# 绑定 IP# 监听端口# 数据目录# 最大连接数# InnoDB 缓冲池大小# 错误日志# 慢查询日志# 字符集# 禁用符号链接# 禁用 DNS 解析。

2025-03-16 12:15:37 1010

原创 使用 Docker 部署 Redis

Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,支持多种数据结构(如字符串、哈希、列表、集合等)。它通常用于缓存、会话存储、消息队列和实时数据分析等场景。:将主机的配置文件挂载到容器。:指定容器启动时使用的配置文件。# Redis 配置文件示例# 绑定 IP# 监听端口port 6379# 守护进程模式# 日志文件# 数据库数量# RDB 持久化规则save 900 1# AOF 持久化# 访问密码# 最大客户端连接数。

2025-03-16 11:59:12 822

原创 Docker 命令学习

Docker 是一种开源的容器化平台,允许开发者将应用程序及其依赖打包到一个轻量级、可移植的容器中。通过 Docker,可以实现快速部署、扩展和管理应用程序。本文将详细介绍 Docker 的常用命令,并结合示例说明,同时涵盖一些高级应用场景。

2025-03-16 11:52:26 888

原创 Linux 命令学习记录

Linux 是一种广泛使用的开源操作系统,掌握 Linux 命令是开发者和系统管理员的必备技能。本文将详细介绍 Linux 的常用命令,并涵盖一些高级进阶技巧,帮助你更高效地使用 Linux。

2025-03-15 22:32:37 2003 1

原创 Java 反射机制学习

Java 反射(Reflection)是 Java 语言的一种强大特性,允许程序在运行时动态地获取类的信息并操作类或对象的属性、方法和构造器。反射机制打破了 Java 的封装性,但也提供了极大的灵活性,常用于框架开发、动态代理、注解处理等场景。

2025-03-15 22:28:35 394

原创 网络和操作系统基础篇

*非对称加密算法:**密钥成对出现(私钥、公钥),私钥只有自己知道,不在网络中传输;**TIME-WAIT:**为了解决网络的丢包和网络不稳定所带来的其他问题,确保连接方能在时间范围内,关闭自己的连接。**对称加密算法:**双方持有相同的密钥,且加密速度快,典型对称加密算法:DES、AES。主要是为了建立可靠的通信信道,保证客户端与服务端同时具备发送、接收数据的能力。**CLOSE-WAIT:**这种状态的含义其实是表示在等待关闭。转发是一次请求,可以使用request对象共享数据。

2025-02-23 17:36:54 467

原创 多线程篇学习面试

通常情况下,我们创建的变量是可以被任何⼀个线程访问并修改的。如果想实现每⼀个线程都有⾃⼰的。专属本地变量该如何解决呢?JDK中提供的 ThreadLocal 类正是为了解决这样的问题。类似操作系统中的TLAB。

2025-02-23 17:35:51 1120

原创 Spring篇

​ IOC(Inverse of Control:控制反转)是⼀种设计思想,就是将原本在程序中⼿动创建对象的控制权,交由Spring框架来管理。IOC 在其他语⾔中也有应⽤,并⾮ Spring 特有。​ IOC 容器是 Spring⽤来实现 IOC 的载体, IOC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。将对象之间的相互依赖关系交给 IOC 容器来管理,并由 IOC 容器完成对象的注⼊。这样可以很⼤程度上简化应⽤的开发,把应⽤从复杂的依赖关系中解放出来。

2025-02-23 17:34:47 742

原创 MySQL面试学习

原子性、一致性、隔离性、持久性实现保证:MySQL的存储引擎InnoDB使用重做日志保证一致性与持久性,回滚日志保证原子性,使用各种锁来保证隔离性。

2025-02-23 17:33:47 633

原创 java基础学习

封装:对抽象的事物抽象化成一个对象,并对其对象的属性私有化,同时提供一些能被外界访问属性的方法;继承:子类扩展新的数据域或功能,并复用父类的属性与功能,单继承,多实现;多态:通过继承(多个⼦类对同⼀⽅法的重写)、也可以通过接⼝(实现接⼝并覆盖接⼝);多态的底层实现是动态绑定,即在运行时才把方法调用与方法实现关联起来。一种是在编译期确定,被称为静态分派,比如方法的重载;一种是在运行时确定,被称为动态分派,比如方法的覆盖(重写)和接口的实现。

2025-02-23 17:30:28 1025

原创 堆、方法区、虚拟机栈、本地方法栈 和 程序计数器

Java 内存区域的设计是为了支持高效的程序执行和内存管理。理解这些内存区域的作用和特点,有助于编写高性能、稳定的 Java 程序,并能够更好地排查内存相关的问题(如。这些内存区域各自有不同的职责,共同支持 Java 程序的运行。在 Java 中,内存区域是 JVM(Java 虚拟机)管理的关键部分,主要包括。

2025-02-10 09:41:33 974

原创 java手动实现常见数据结构

在 Java 中,常用的数据结构可以通过。Java 提供了丰富的内置数据结构

2025-02-07 09:58:07 1004

原创 红黑树(Red-Black Tree)

红黑树是一种高效的自平衡二叉查找树,通过颜色标记和旋转操作维持平衡,适用于需要频繁插入、删除和查找的场景。它的设计巧妙且实用,是 Java 集合框架中的重要数据结构之一。红黑树(Red-Black Tree)是一种自平衡的二叉查找树(BST),它通过特定的规则确保树的高度保持在对数级别,从而保证查找、插入和删除操作的时间复杂度为。红黑树的核心操作包括插入、删除和查找。为了维持红黑树的特性,插入和删除操作可能会破坏规则,因此需要通过。在此基础上,红黑树通过颜色标记和旋转操作来维持平衡。

2025-02-06 11:13:11 595

原创 js校验《GB 32100-2015 法人和其他组织统一社会信用代码编码规则》

GB 32100-2015 法人和其他组织统一社会信用代码编码规则

2025-01-13 11:26:19 989

空空如也

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

TA关注的人

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