- 博客(289)
- 收藏
- 关注
原创 Java垃圾回收机制
本文系统介绍了Java垃圾回收机制的核心算法与实现。主要内容包括:1)可达性分析和分代收集理论;2)标记-清除、标记-整理和复制三种基础算法的原理与适用场景;3)新生代和老年代主流收集器的特点对比;4)GC触发条件、日志分析和JVM调优策略。文章还总结了常见问题解决方法、收集器性能对比及监控工具,并展望了ZGC等新一代回收技术的发展趋势,为Java性能优化提供实践指导。
2026-01-23 11:18:40
722
原创 java集合框架
Java集合框架核心要点总结: List:有序可重复集合,支持索引访问(ArrayList/LinkedList) Set:无序不可重复集合(HashSet/TreeSet) Map:键值对存储结构(HashMap/TreeMap) 主要实现类对比: ArrayList基于数组,随机访问快;LinkedList基于链表,插入删除快 HashSet无序哈希存储;TreeSet有序红黑树实现 HashMap线程不安全效率高;Hashtable线程安全效率低 ConcurrentHashMap采用分段锁实现高效线
2026-01-22 15:41:38
1238
原创 BIO/NIO/AIO/Netty 知识点
Netty 是基于 NIO 的高性能网络框架,提供事件驱动、零拷贝等特性,简化 NIO 编程。核心优势线程模型优化(如主从 Reactor)。解决粘包/半包问题(如 LengthFieldBasedFrameDecoder)。
2026-01-22 10:35:41
676
原创 多线程与高并发
本文系统总结了Java多线程编程的核心知识点。主要内容包括:1)线程创建方式(继承Thread、实现Runnable/Callable、线程池);2)线程同步机制(synchronized原理、锁优化、CAS、ReentrantLock);3)线程通信(wait/notify、LockSupport);4)线程池原理与调优;5)并发工具(CountDownLatch、Semaphore);6)ThreadLocal原理与内存泄漏;7)死锁检测与预防;8)线程状态与调度。涵盖了从基础概念到高级特性的完整知识体
2026-01-20 15:01:06
543
原创 MYSQL 知识点(五)
MySQL数据库管理问题摘要 本文解答了MySQL数据库管理中的常见问题,包括:修改数据库/表编码格式(使用ALTER DATABASE/TABLE语句);创建表(CREATE TABLE语法);查看表结构(DESCRIBE或SHOW CREATE TABLE);更新表结构(ALTER TABLE操作);删除方式区别(DELETE逐行删除、TRUNCATE清空表、DROP删除对象);服务启停命令(Linux用systemctl,Windows用net);版本查询(SELECT VERSION());存储引擎
2026-01-16 16:29:01
827
原创 MYSQL 知识点(四)
MySQL核心机制摘要 本文总结了MySQL的关键技术点,包括锁机制(FTWRL、表锁、行锁算法)、日志系统(redo log与binlog区别及关联)、事务安全(crash-safe实现)、性能优化(WAL技术、刷脏页控制)和运维操作(数据恢复、用户管理)。重点解析了InnoDB的锁实现方式、日志协同机制保证数据一致性、以及通过缓冲池和预读优化I/O性能的方法。同时涵盖了实用命令如时间点恢复、密码修改和数据库创建等DBA常用操作,为MySQL性能调优和故障处理提供技术参考。
2026-01-16 16:23:40
570
原创 MYSQL 知识点(三)
本文总结了MySQL索引与锁相关的25个核心知识点。索引部分涵盖前缀索引适用场景、B+树优势、索引选择策略及优化技巧,如OR查询改写为UNION、身份证索引优化方案等。锁机制部分详细解析了锁分类、死锁处理流程,包括检测方法、避免策略和全局锁应用场景。还提供了实际SQL示例,如强制索引语法、共享锁/排它锁使用方式等。这些内容涉及MySQL性能优化的关键点,对数据库设计和问题排查具有实用参考价值。
2026-01-16 16:21:05
772
原创 MYSQL 知识点(二)
本文总结了MySQL中关于count、索引、连接等核心概念的常见问题解答。主要内容包括:count(*)与count(列)的区别在于是否统计NULL值;InnoDB不缓存总行数因其事务特性;索引类型有普通、唯一、主键等,遵循最左匹配原则;连接分内连接、左右外连接;视图是虚拟表可简化查询;误删数据可通过binlog或Flashback恢复。还解答了索引创建、前缀索引、自增主键等实用问题,为MySQL性能优化提供了系统指导。
2026-01-16 16:16:34
597
原创 MYSQL 知识点 (一)
MySQL查询执行流程包括解析、优化和执行阶段,其中"列不存在"错误发生在解析阶段。InnoDB和MyISAM是主要存储引擎,前者支持事务和行锁,后者性能更高但不支持事务。表空间管理、索引优化和事务隔离级别(如解决幻读问题)是关键优化点。数据类型选择需考虑存储需求,如金额使用DECIMAL保证精度。查询优化技巧包括覆盖索引、LIMIT分页和COUNT(DISTINCT)去重统计。表操作如TRUNCATE比DELETE更高效但不可回滚。ENUM类型适合固定值字段,LAST_INSERT_I
2026-01-16 16:10:55
1013
原创 ShardingSphere框架中的核心部分分片策略和分片算法
实现方式继承接口,重写doSharding方法。示例代码@Override// 自定义逻辑应用场景需特殊分片逻辑(如地理位置、业务规则)。策略/算法适用场景性能影响单一键均匀分布低Complex + 自定义多键联合分片中(算法复杂度)Hint无分片键或强制路由高(手动维护)Inline简单表达式分片低时间序列数据自动优化。
2026-01-13 11:09:47
1024
原创 什么是回表,如何避免和优化
回表查询指数据库通过非聚集索引定位数据时,因索引未包含查询所需的全部列,需根据索引找到主键或行标识符后,再回到聚集索引或基表读取完整数据行的过程。该操作会增加I/O开销,影响查询性能。
2026-01-09 13:58:20
199
原创 RabbitMQ 简介
RabbitMQ 是一个开源的消息代理和队列服务器,基于 AMQP(Advanced Message Queuing Protocol)协议实现。它支持多种消息传递模式,适用于分布式系统中的异步通信、解耦和流量削峰等场景。
2026-01-09 11:00:08
540
原创 spring boot线程池配置与CompletableFuture使用示例
【代码】spring boot线程池配置与CompletableFuture使用示例。
2026-01-08 15:23:37
151
原创 Kafka 基础概念
消息以 Partition 为单位持久化到磁盘,每个 Partition 由多个 Segment 文件组成(含。分布式流处理平台,专为高吞吐量、低延迟的实时数据流设计。核心功能包括发布-订阅消息系统、持久化存储和流式处理。电商用户行为追踪:Producer 发送点击/购买事件到 Kafka,Flink 消费数据并实时计算推荐结果。消息顺序追加,索引文件加速检索。参数控制),需注意消息幂等性。
2026-01-07 15:49:41
931
原创 ElasticSearch详细介绍
Elasticsearch是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建。它提供近实时的搜索能力,支持结构化、非结构化数据的全文检索、聚合分析等功能。
2025-12-23 09:33:38
459
原创 达梦数据库基本介绍
达梦数据库(DM Database)是由武汉达梦数据库有限公司自主研发的关系型数据库管理系统,符合SQL标准,支持多种编程接口和开发框架。产品定位国产化数据库替代方案面向金融、电信、政务等关键领域提供高安全、高可用、高性能特性版本系列DM7:经典稳定版DM8:主流推荐版本DMTDD:分布式版本。
2025-12-10 10:26:28
253
原创 Spring框架相关
REQUIRED(默认,存在则加入,否则新建)、SUPPORTS(存在则加入,否则非事务)、REQUIRES_NEW(新建事务)、NOT_SUPPORTED(非事务)、NEVER(非事务,否则异常)、NESTED(嵌套事务)。工厂模式(BeanFactory)、单例模式(默认作用域)、代理模式(AOP)、模板方法(JdbcTemplate)、观察者模式(事件)、适配器模式(HandlerAdapter)、装饰器模式(Wrapper类)等。Tomcat(默认)、Jetty、Undertow。
2025-12-09 17:10:20
617
原创 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
855
原创 Druid 连接池详解及配置优化
Druid 是阿里巴巴开源的高性能数据库连接池,广泛应用于 Java 项目中。以下内容详细解析 Druid 的核心配置及优化方案。
2025-12-08 14:01:16
550
原创 JMeter 压测配置详解
线程数决定模拟的虚拟用户数量,Ramp-Up时间控制线程启动的速率,循环次数设定每个线程执行测试计划的次数。设置线程数为目标并发量(如100),Ramp-Up时间为30秒,循环次数勾选“永远”或指定具体数值。右键线程组 → 添加 → 配置元件 → HTTP请求默认值。配置偏差(如100毫秒)和固定延迟(如300毫秒),模拟用户操作间隔。选择测试字段(如响应代码),设置匹配规则(等于)和模式(200)。设置采样器的默认值和变量,例如HTTP请求默认值可统一管理服务器地址和端口,CSV数据文件设置实现参数化。
2025-11-28 16:30:46
366
原创 Linux 常用命令大全
查看网络接口配置(需安装net-tools)设置文件权限为rwxr-xr-x。以GB/MB为单位显示内存使用。显示所有文件(包括隐藏文件)显示文件inode及权限信息。显示当前工作目录的完整路径。强制删除目录(无确认提示)交互式分页查看(支持滚动)使用nano编辑器打开文件。在指定路径搜索.txt文件。查看用户UID/GID信息。使用vim编辑器打开文件。查找大于100MB的文件。切换到上一个访问的目录。查找7天内修改过的文件。递归搜索目录内文件内容。筛选显示.conf文件。查看系统运行时间及负载。
2025-11-27 15:17:22
400
原创 MD5加密简介
MD5(Message Digest Algorithm 5)是一种广泛使用的哈希函数,由Ronald Rivest于1991年设计。它将任意长度的输入数据转换为固定长度(128位,即32个字符)的哈希值。MD5常用于校验数据完整性或密码加密,但由于其存在碰撞漏洞(不同输入可能产生相同哈希值),不建议用于高安全性场景。
2025-11-25 11:07:58
393
原创 Sonar代码扫描机制概述
Sonar(现为SonarQube/SonarCloud)是一种静态代码分析工具,用于持续检测代码质量,支持多种编程语言。其核心机制通过静态分析、规则引擎和质量管理模型实现代码缺陷、漏洞及坏味道的识别。
2025-11-24 14:57:39
669
原创 Spring Cloud 面试题概述
Spring Cloud 是一系列框架的集合,基于 Spring Boot 提供了一套完整的微服务解决方案。包括服务注册与发现、配置中心、负载均衡、断路器、网关等功能。Hystrix 是断路器组件,通过熔断机制防止级联故障。当服务调用失败率达到阈值时自动熔断,快速失败并提供降级逻辑。断路器模式在检测到连续失败时打开熔断,阻止后续请求。解决微服务中雪崩效应问题,保证系统部分失败时整体仍可用。Feign 是声明式 REST 客户端,通过接口注解简化 HTTP 调用。
2025-11-17 15:33:04
457
原创 Spring Boot 面试题概述
Spring Boot 是一个基于 Spring 框架的开源项目,旨在简化 Spring 应用的初始搭建和开发过程。它通过自动配置、内嵌服务器和默认配置减少了开发者的手动配置工作,使应用能够快速运行。通过文件区分环境(如在启动时通过指定激活的环境。
2025-11-17 14:54:21
737
原创 MyBatis面试题概述
MyBatis是一款优秀的持久层框架,支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解来配置和原始映射,将接口和Java的POJO映射成数据库中的记录。JPA(Java Persistence API)是Java EE的ORM标准,定义对象-关系映射的规范。Hibernate是JPA的流行实现,提供自动化的对象持久化功能。
2025-11-12 09:39:16
590
原创 Hibernate面试题概述
Hibernate通过JDBC封装实现ORM,将对象映射到数据库表。使用原因包括:减少样板代码、跨数据库兼容、缓存优化、延迟加载、自动化事务管理。)或时间戳实现乐观锁,处理并发问题。通过动态代理(如Javassist)生成占位对象,实际访问时触发查询。一级缓存自动管理,二级缓存需配置缓存提供者(如Ehcache)。用于将游离态对象重新关联到Session并强制更新,若对象已存在会报错。表示关系由对方维护(如一对多中由多的一方维护外键),避免重复更新。同步到数据库,适合长时间对话或离线场景。
2025-11-12 09:28:23
938
原创 Spring MVC面试题概述
Spring MVC 是基于 Java 的轻量级 Web 框架,属于 Spring 框架的一部分,用于构建灵活、松耦合的 Web 应用程序。它实现了 MVC(Model-View-Controller)设计模式,通过分离业务逻辑、数据和视图,简化了开发流程。
2025-11-11 17:15:13
1113
原创 Spring面试题概述
Spring是一个开源的Java应用框架,用于构建企业级应用程序。它提供全面的基础设施支持,简化应用开发,核心特性包括依赖注入(IOC)、面向切面编程(AOP)等。
2025-11-11 17:05:16
929
原创 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
771
原创 阿里云短信服务使用流程
短信发送频率有限制,默认单号码每小时不超过5条。重要业务建议结合短信验证码有效期进行发送间隔控制。发送返回的BizId可用于查询发送记录和状态。生产环境建议将密钥信息通过配置文件或环境变量管理,避免硬编码。异常处理需完善,包括网络异常、参数校验等场景。登录阿里云控制台,进入短信服务页面,完成资质申请和签名审核。在控制台申请短信模板,模板需符合规范并通过审核。记录模板CODE用于后续发送。根据企业或产品名称申请签名,签名需审核通过。签名将显示在短信内容开头。注册阿里云账号并开通短信服务。
2025-11-11 15:19:11
324
原创 物联网详细介绍概述
物联网(IoT)是通过互联网连接物理设备的网络,实现设备间的数据交换和远程控制。物联网架构通常包括设备层、网络层、平台层和应用层。设备层由传感器、执行器等硬件组成,负责数据采集和执行指令。网络层负责数据传输,使用Wi-Fi、蓝牙、LoRa等通信技术。平台层提供设备管理、数据存储和分析功能。应用层实现用户交互和业务逻辑。
2025-11-10 14:37:54
309
原创 BeanCopier与BeanUtils.copyProperties
BeanUtils.copyProperties是Apache Commons BeanUtils或Spring BeanUtils提供的工具,基于反射机制实现属性拷贝,功能更丰富但性能较低。BeanCopier是CGLIB库中的工具,专注于高性能的Bean属性拷贝,通过生成字节码实现直接属性赋值,适合大量数据拷贝场景。BeanCopier在首次调用时会生成字节码类,后续调用直接执行生成的代码,性能接近直接setter调用。BeanCopier仅支持同名同类型属性的简单拷贝,不支持类型转换或复杂逻辑。
2025-11-10 11:28:17
409
原创 Hive 概述
Hive 是基于 Hadoop 的数据仓库工具,可将结构化数据文件映射为数据库表,并提供类 SQL(HiveQL)查询功能。它适用于大规模数据集的批处理场景,通过将查询转换为 MapReduce 或 Tez/Spark 任务执行。
2025-11-10 09:48:43
314
原创 Java实现Word转PDF的常用方法
字体嵌入问题需要额外配置,确保PDF能正确显示特殊字体。文档安全性设置可能会影响转换结果,需要特别处理密码保护的文件。这种方法适合处理简单的.docx文件格式转换,但可能丢失部分复杂格式。基于OpenOffice或LibreOffice的API进行转换,支持保留原始文档格式。批量处理时采用线程池提高转换效率。大文件转换需要增加JVM内存分配。监控转换过程中的内存泄漏问题。通过Office 365的云端服务进行转换,适合需要分布式处理的场景。专业文档处理库,支持高质量格式转换,但需要商业授权。
2025-11-10 09:48:31
497
原创 kafka启动命令
启动ZooKeeper是运行Kafka的前提条件。若日志无报错且显示启动完成,表明服务已就绪。使用命令行工具创建Topic(如名为。分区数和副本数需根据实际需求调整。路径正确且有足够的磁盘空间。
2025-11-10 09:48:19
388
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅