自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ElasticSearch详细介绍

Elasticsearch是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建。它提供近实时的搜索能力,支持结构化、非结构化数据的全文检索、聚合分析等功能。

2025-12-23 09:33:38 258

原创 达梦数据库基本介绍

达梦数据库(DM Database)是由武汉达梦数据库有限公司自主研发的关系型数据库管理系统,符合SQL标准,支持多种编程接口和开发框架。产品定位国产化数据库替代方案面向金融、电信、政务等关键领域提供高安全、高可用、高性能特性版本系列DM7:经典稳定版DM8:主流推荐版本DMTDD:分布式版本。

2025-12-10 10:26:28 147

原创 Spring框架相关

REQUIRED(默认,存在则加入,否则新建)、SUPPORTS(存在则加入,否则非事务)、REQUIRES_NEW(新建事务)、NOT_SUPPORTED(非事务)、NEVER(非事务,否则异常)、NESTED(嵌套事务)。工厂模式(BeanFactory)、单例模式(默认作用域)、代理模式(AOP)、模板方法(JdbcTemplate)、观察者模式(事件)、适配器模式(HandlerAdapter)、装饰器模式(Wrapper类)等。Tomcat(默认)、Jetty、Undertow。

2025-12-09 17:10:20 590

原创 Logback-spring.xml 配置详解

【代码】Logback-spring.xml 配置详解。

2025-12-09 17:00:07 388

原创 JVM 参数详解及优化方案

XX:PretenureSizeThreshold=1m 设置大对象直接进入老年代的阈值为1MB,避免大对象在新生代频繁复制。-Xms2048m 初始堆大小设置为2GB,-Xmx2048m 最大堆大小同样为2GB,避免堆动态调整带来的性能开销。-XX:MaxGCPauseMillis=200 设置最大GC停顿时间为200ms,平衡吞吐量和延迟。-XX:MetaspaceSize=215m 元空间初始大小为215MB,触发GC的阈值。

2025-12-09 16:35:32 815

原创 Tomcat性能调优核心方向

【代码】Tomcat性能调优核心方向。

2025-12-09 16:25:12 292

原创 Druid 连接池详解及配置优化

Druid 是阿里巴巴开源的高性能数据库连接池,广泛应用于 Java 项目中。以下内容详细解析 Druid 的核心配置及优化方案。

2025-12-08 14:01:16 425

原创 JMeter 压测配置详解

线程数决定模拟的虚拟用户数量,Ramp-Up时间控制线程启动的速率,循环次数设定每个线程执行测试计划的次数。设置线程数为目标并发量(如100),Ramp-Up时间为30秒,循环次数勾选“永远”或指定具体数值。右键线程组 → 添加 → 配置元件 → HTTP请求默认值。配置偏差(如100毫秒)和固定延迟(如300毫秒),模拟用户操作间隔。选择测试字段(如响应代码),设置匹配规则(等于)和模式(200)。设置采样器的默认值和变量,例如HTTP请求默认值可统一管理服务器地址和端口,CSV数据文件设置实现参数化。

2025-11-28 16:30:46 266

原创 Linux 常用命令大全

查看网络接口配置(需安装net-tools)设置文件权限为rwxr-xr-x。以GB/MB为单位显示内存使用。显示所有文件(包括隐藏文件)显示文件inode及权限信息。显示当前工作目录的完整路径。强制删除目录(无确认提示)交互式分页查看(支持滚动)使用nano编辑器打开文件。在指定路径搜索.txt文件。查看用户UID/GID信息。使用vim编辑器打开文件。查找大于100MB的文件。切换到上一个访问的目录。查找7天内修改过的文件。递归搜索目录内文件内容。筛选显示.conf文件。查看系统运行时间及负载。

2025-11-27 15:17:22 384

原创 Docker 常用命令

启动交互式容器并进入终端。(强制删除运行中容器)启动新容器并后台运行。启动容器并挂载数据卷。

2025-11-27 14:59:23 524

原创 MD5加密简介

MD5(Message Digest Algorithm 5)是一种广泛使用的哈希函数,由Ronald Rivest于1991年设计。它将任意长度的输入数据转换为固定长度(128位,即32个字符)的哈希值。MD5常用于校验数据完整性或密码加密,但由于其存在碰撞漏洞(不同输入可能产生相同哈希值),不建议用于高安全性场景。

2025-11-25 11:07:58 251

原创 Sonar代码扫描机制概述

Sonar(现为SonarQube/SonarCloud)是一种静态代码分析工具,用于持续检测代码质量,支持多种编程语言。其核心机制通过静态分析、规则引擎和质量管理模型实现代码缺陷、漏洞及坏味道的识别。

2025-11-24 14:57:39 518

原创 Spring Cloud 面试题概述

Spring Cloud 是一系列框架的集合,基于 Spring Boot 提供了一套完整的微服务解决方案。包括服务注册与发现、配置中心、负载均衡、断路器、网关等功能。Hystrix 是断路器组件,通过熔断机制防止级联故障。当服务调用失败率达到阈值时自动熔断,快速失败并提供降级逻辑。断路器模式在检测到连续失败时打开熔断,阻止后续请求。解决微服务中雪崩效应问题,保证系统部分失败时整体仍可用。Feign 是声明式 REST 客户端,通过接口注解简化 HTTP 调用。

2025-11-17 15:33:04 432

原创 Spring Boot 面试题概述

Spring Boot 是一个基于 Spring 框架的开源项目,旨在简化 Spring 应用的初始搭建和开发过程。它通过自动配置、内嵌服务器和默认配置减少了开发者的手动配置工作,使应用能够快速运行。通过文件区分环境(如在启动时通过指定激活的环境。

2025-11-17 14:54:21 721

原创 MyBatis面试题概述

MyBatis是一款优秀的持久层框架,支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和原始映射,将接口和Java的POJO映射成数据库中的记录。JPA(Java Persistence API)是Java EE的ORM标准,定义对象-关系映射的规范。Hibernate是JPA的流行实现,提供自动化的对象持久化功能。

2025-11-12 09:39:16 578

原创 Hibernate面试题概述

Hibernate通过JDBC封装实现ORM,将对象映射到数据库表。使用原因包括:减少样板代码、跨数据库兼容、缓存优化、延迟加载、自动化事务管理。)或时间戳实现乐观锁,处理并发问题。通过动态代理(如Javassist)生成占位对象,实际访问时触发查询。一级缓存自动管理,二级缓存需配置缓存提供者(如Ehcache)。用于将游离态对象重新关联到Session并强制更新,若对象已存在会报错。表示关系由对方维护(如一对多中由多的一方维护外键),避免重复更新。同步到数据库,适合长时间对话或离线场景。

2025-11-12 09:28:23 923

原创 Struts2 面试题概述

实现接口或继承。重写方法,调用继续执行后续拦截器。在struts.xml中声明拦截器栈并引用。

2025-11-11 17:28:57 880

原创 Spring MVC面试题概述

Spring MVC 是基于 Java 的轻量级 Web 框架,属于 Spring 框架的一部分,用于构建灵活、松耦合的 Web 应用程序。它实现了 MVC(Model-View-Controller)设计模式,通过分离业务逻辑、数据和视图,简化了开发流程。

2025-11-11 17:15:13 1098

原创 Spring面试题概述

Spring是一个开源的Java应用框架,用于构建企业级应用程序。它提供全面的基础设施支持,简化应用开发,核心特性包括依赖注入(IOC)、面向切面编程(AOP)等。

2025-11-11 17:05:16 914

原创 Java基础面试题详解

Java有8种基本数据类型:byte(8位)、short(16位)、int(32位)、long(64位)、float(32位)、double(64位)、char(16位)、boolean(1位)。对应的包装类:Byte、Short、Integer、Long、Float、Double、Character、Boolean,用于泛型、集合等场景。List:有序可重复,ArrayList(数组,随机访问快)、LinkedList(链表,插入删除快)。

2025-11-11 16:49:50 756

原创 阿里云短信服务使用流程

短信发送频率有限制,默认单号码每小时不超过5条。重要业务建议结合短信验证码有效期进行发送间隔控制。发送返回的BizId可用于查询发送记录和状态。生产环境建议将密钥信息通过配置文件或环境变量管理,避免硬编码。异常处理需完善,包括网络异常、参数校验等场景。登录阿里云控制台,进入短信服务页面,完成资质申请和签名审核。在控制台申请短信模板,模板需符合规范并通过审核。记录模板CODE用于后续发送。根据企业或产品名称申请签名,签名需审核通过。签名将显示在短信内容开头。注册阿里云账号并开通短信服务。

2025-11-11 15:19:11 196

原创 物联网详细介绍概述

物联网(IoT)是通过互联网连接物理设备的网络,实现设备间的数据交换和远程控制。物联网架构通常包括设备层、网络层、平台层和应用层。设备层由传感器、执行器等硬件组成,负责数据采集和执行指令。网络层负责数据传输,使用Wi-Fi、蓝牙、LoRa等通信技术。平台层提供设备管理、数据存储和分析功能。应用层实现用户交互和业务逻辑。

2025-11-10 14:37:54 289

原创 BeanCopier与BeanUtils.copyProperties

BeanUtils.copyProperties是Apache Commons BeanUtils或Spring BeanUtils提供的工具,基于反射机制实现属性拷贝,功能更丰富但性能较低。BeanCopier是CGLIB库中的工具,专注于高性能的Bean属性拷贝,通过生成字节码实现直接属性赋值,适合大量数据拷贝场景。BeanCopier在首次调用时会生成字节码类,后续调用直接执行生成的代码,性能接近直接setter调用。BeanCopier仅支持同名同类型属性的简单拷贝,不支持类型转换或复杂逻辑。

2025-11-10 11:28:17 388

原创 Hive 概述

Hive 是基于 Hadoop 的数据仓库工具,可将结构化数据文件映射为数据库表,并提供类 SQL(HiveQL)查询功能。它适用于大规模数据集的批处理场景,通过将查询转换为 MapReduce 或 Tez/Spark 任务执行。

2025-11-10 09:48:43 298

原创 Java实现Word转PDF的常用方法

字体嵌入问题需要额外配置,确保PDF能正确显示特殊字体。文档安全性设置可能会影响转换结果,需要特别处理密码保护的文件。这种方法适合处理简单的.docx文件格式转换,但可能丢失部分复杂格式。基于OpenOffice或LibreOffice的API进行转换,支持保留原始文档格式。批量处理时采用线程池提高转换效率。大文件转换需要增加JVM内存分配。监控转换过程中的内存泄漏问题。通过Office 365的云端服务进行转换,适合需要分布式处理的场景。专业文档处理库,支持高质量格式转换,但需要商业授权。

2025-11-10 09:48:31 451

原创 kafka启动命令

启动ZooKeeper是运行Kafka的前提条件。若日志无报错且显示启动完成,表明服务已就绪。使用命令行工具创建Topic(如名为。分区数和副本数需根据实际需求调整。路径正确且有足够的磁盘空间。

2025-11-10 09:48:19 281

原创 网络HTTP、TCP、UDP、Socket 知识总结

HTTP是应用层协议,用于客户端与服务器之间的通信。HTTP/1.1支持持久连接,HTTP/2引入多路复用和头部压缩。HTTP是无状态协议,依赖Cookie或Session维持会话状态。TCP是面向连接的可靠传输协议,通过三次握手建立连接,四次挥手终止连接。保证数据顺序和完整性,适用于文件传输、网页浏览等场景。UDP是无连接的不可靠传输协议,不保证数据顺序和送达。开销小、延迟低,适用于实时应用如视频会议(QUIC协议基于UDP改进)。Socket是操作系统提供的API,用于网络通信的端点抽象。

2025-11-07 15:45:39 194 1

原创 Session、Cookie、Token的区别

服务器端存储的用户会话信息,通常通过唯一的Session ID标识。Session数据保存在服务器内存或数据库中,客户端仅持有Session ID(通常通过Cookie传递)。适用于需要服务器维护用户状态的场景,如登录状态、购物车数据。Session的缺点是服务器需要存储大量数据,可能影响性能。Token包含用户信息(如用户ID、权限)和签名,由服务器生成并发送给客户端,客户端后续请求需在Header(如。Token无需服务器存储,适合分布式系统,但一旦签发难以主动失效。

2025-11-07 14:55:54 150

原创 Nacos热更新原理

客户端向Nacos服务器发起配置查询请求,服务器会保持连接一段时间(默认30秒)。Nacos实现热更新的核心机制基于长轮询(Long Polling)和配置监听。当配置发生变化时,客户端能够实时感知并动态更新应用配置,无需重启服务。客户端收到变更通知后,重新拉取配置并更新内存中的配置值。管理员通过Nacos控制台或API修改配置后,服务器会记录新版本并标记为已变更。当服务器检测到配置变化,会通知所有监听该配置的客户端,触发客户端的回调函数。应用启动时从Nacos服务器拉取最新配置,并注册监听器。

2025-11-07 14:48:44 309

原创 Apollo配置中心介绍

Apollo(阿波罗)是携程开源的分布式配置中心,用于集中化管理应用配置,支持配置动态更新、多环境管理、权限控制等功能。适用于微服务架构,能够显著提升配置管理的效率和可靠性。集中式管理:统一管理不同环境(DEV、FAT、UAT、PRO)的配置。实时生效:配置修改后无需重启应用,实时推送到客户端。版本管理:记录配置变更历史,支持回滚。权限控制:细粒度的配置访问和修改权限。多语言支持:提供Java、.NET、Go等客户端。

2025-11-07 14:05:07 319

原创 redis 布隆过滤器简介

布隆过滤器(Bloom Filter)是一种概率型数据结构,用于高效判断某个元素是否存在于一个集合中。其特点是空间效率高、查询速度快,但可能存在一定的误判率(假阳性)。布隆过滤器在Redis中通过模块实现(Redis 4.0及以上版本支持)。# 通过EXPANSION参数控制扩容倍数。

2025-11-07 14:02:18 422

原创 MySQL中MVCC 概念

MVCC(Multi-Version Concurrency Control,多版本并发控制)是 MySQL 中实现并发控制的一种机制,主要用于解决读写冲突问题,提高数据库的并发性能。通过为每条记录维护多个版本,MVCC 使得读写操作可以并发执行,而无需加锁阻塞。Undo Log 存储记录的历史版本,用于实现版本链的回溯。当事务回滚或需要读取历史版本时,通过。通过 MVCC 机制,MySQL 在保证事务隔离性的同时,显著提高了并发处理能力。找到 Undo Log 中的对应记录。事务在执行快照读(如。

2025-11-07 11:28:22 296

原创 Jenkins 自动化部署 Git + Maven 配置指南

确保已安装 Jenkins、Git、Maven 和 JDK。Jenkins 需安装插件:Git Plugin、Maven Integration Plugin 和 Pipeline 插件(可选)。手动触发构建并查看控制台输出,确保各阶段无报错。检查目标服务器是否成功部署应用。选择 “新建 Item”,创建自由风格或 Maven 项目。

2025-11-07 11:26:10 320

原创 spring boot 多环境配置

定义通用配置,环境专用配置会覆盖通用配置。Spring Boot的多环境配置通过。

2025-11-07 11:15:02 263

原创 MySQL 窗口函数介绍

窗口函数(Window Functions)是 MySQL 8.0 引入的强大功能,允许在查询中执行计算而不改变原始数据行。与聚合函数不同,窗口函数不会将行分组为单个输出行,而是为每一行返回一个值,同时保留原始行的细节。窗口函数通常与OVER()子句一起使用,定义计算的行范围(窗口)。聚合类窗口函数:如SUM()AVG()COUNT()等,但通过OVER()使用。排名类窗口函数:如RANK()。分析类窗口函数:如LEAD()LAG()。

2025-11-07 11:11:45 311

原创 二叉树、B树、红黑树

二叉树是一种每个节点最多有两个子节点的树结构,通常称为左子节点和右子节点。二叉树常用于搜索、排序和哈希等场景。红黑树是一种自平衡的二叉搜索树,通过对节点着色和旋转操作维持平衡。B树是一种自平衡的多路搜索树,常用于数据库和文件系统索引。

2025-11-07 10:53:20 215

原创 java对象从新生代晋升到老年代

对象在新生代的Eden区分配后,经过垃圾回收存活下来会被移动到Survivor区(S0或S1)。当对象的年龄达到设定的阈值(默认15,可通过。在Minor GC时,如果Survivor区无法容纳所有存活对象,JVM会通过分配担保机制(Handle Promotion)将部分对象直接晋升到老年代。如果Survivor区中相同年龄的所有对象大小总和超过Survivor区的一半,年龄大于或等于该年龄的对象会直接晋升到老年代。为了避免大对象在新生代频繁复制,JVM会直接将超过设定大小的对象分配到老年代。

2025-11-06 15:12:12 212

原创 MySQL索引底层原理

InnoDB以页(默认16KB)为单位管理数据,B+树的一个节点对应一个页。插入数据时可能触发页分裂,删除数据可能触发页合并,以维持B+树平衡。InnoDB会为频繁访问的索引页自动创建自适应哈希索引(AHI),提升查询速度。不同存储引擎采用不同的索引结构,但最常用的是InnoDB的B+树索引。\text{选择性} = \frac{\text{不同值数量}}{\text{总记录数}}数学表达:一个m阶B+树的节点最多包含m-1个键值和m个子节点指针,保证树的平衡性。查询字段全部存在于索引中时,无需回表。

2025-11-06 14:52:18 354

原创 BIO、NIO、多路复用、select、poll、epoll

从BIO到epoll的演进,核心是减少资源消耗、提高并发能力。BIO简单但低效,NIO非阻塞但轮询开销大,多路复用技术通过事件驱动解决了性能瓶颈。select和poll适用于中小规模并发,epoll则是高性能场景的首选。

2025-11-06 14:48:57 326

原创 bootstrap.yml 和 application.yml 的区别

用于引导阶段的配置,优先级更高。是应用程序的主配置文件,覆盖常规属性。在非 Spring Cloud 项目中,通常只需。

2025-11-06 14:41:02 189

空空如也

空空如也

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

TA关注的人

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