- 博客(78)
- 资源 (1)
- 收藏
- 关注
原创 http2.0和3.0的区别
HTTP2.0与HTTP3.0核心差异在于传输协议和性能优化。HTTP2.0基于TCP存在队头阻塞,而HTTP3.0采用UDP+QUIC协议,实现0-RTT连接、无阻塞多路复用和强制加密,连接速度提升30%,弱网丢包率降低40%。TCP与UDP对比显示,TCP提供可靠传输但效率较低,UDP则适合实时应用。QUIC作为HTTP3.0底层协议,整合TLS1.3加密,支持连接迁移,特别优化了移动端和实时交互场景。HTTP3.0于2022年成为正式标准,标志着新一代网络传输技术的成熟。
2025-12-19 11:07:30
834
原创 程序员必须知道的端口
本文总结了程序员必须了解的常见网络端口及其对应服务:20/21端口用于FTP文件传输(数据/控制),22端口提供SSH安全远程登录,25端口是SMTP邮件传输协议,80和443端口分别对应HTTP和HTTPS网页服务。数据库服务端口包括3306(MySQL)、5432(PostgreSQL)、6379(Redis)、27017(MongoDB)和1521(Oracle)。其他重要端口包括53(DNS)、110/143(邮件协议)、3389(RDP远程桌面)和5900(VNC)等。掌握这些端口知识对网络编程和
2025-12-12 14:49:24
99
原创 Spring管理MyBatis Mapper接口的原理详解
摘要:Spring通过动态代理和FactoryBean机制管理MyBatis Mapper接口,核心流程包括:@MapperScan触发扫描器注册Mapper接口为MapperFactoryBean类型Bean,生成JDK动态代理对象,方法调用时由MapperProxy拦截执行SQL操作。支持XML和注解两种配置方式,需注意依赖注入、事务管理和日志配置等事项。
2025-12-12 09:10:23
392
原创 windows安装jdk并配置环境变量
本文介绍了在Windows10系统上安装JDK并配置环境变量的详细步骤。首先需要从Oracle官网下载对应版本的JDK安装包并完成安装。然后通过系统属性设置环境变量:新建JAVA_HOME变量指向JDK安装路径,创建CLASSPATH变量包含必要的jar文件路径,并在Path变量中添加JDK的bin目录。最后通过命令提示符输入java -version和javac命令验证配置是否成功。按照这些步骤操作即可完成JDK的环境配置。
2025-12-11 09:15:33
439
原创 Linux系统Kubernetes(K8s)安装和部署
本文摘要: Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署和管理容器化应用。文章详细介绍了Kubernetes的安装部署流程,包括: 系统环境准备(2台服务器,CentOS7+/Ubuntu18.04+) 系统初始化(关闭防火墙/SELinux/swap,配置内核参数) Docker安装配置 Kubernetes组件安装(kubelet/kubeadm/kubectl) Master节点初始化(配置kubectl,安装Flannel网络插件) Worker节点加入集群 文中提供了完整
2025-12-11 09:06:23
219
原创 linux系统maven安装及配置教程
本文介绍了一个自动安装配置Maven的Shell脚本,主要功能包括:检查Java环境版本兼容性(要求JDK1.8+);自动检测系统类型并安装必要依赖;下载指定版本Maven(3.8.6)并安装到/opt目录;配置全局环境变量;优化Maven配置文件(包含阿里云镜像加速和多JDK版本配置);提供详细的安装日志和验证功能。该脚本支持Ubuntu/Debian/CentOS/RHEL等主流Linux发行版,安装完成后会自动清理临时文件并输出验证结果。
2025-12-11 09:05:42
186
原创 windows10,maven安装及配置教程
本文详细介绍了Windows系统下Maven的安装与配置步骤:首先检查Java环境并下载Maven(推荐3.6+版本);接着解压安装并配置MAVEN_HOME环境变量;然后修改本地仓库路径和添加国内镜像加速;最后演示了在IntelliJ IDEA中的集成方法。文中还提供了常见问题解决方案,如命令未识别和依赖下载慢等问题。
2025-12-10 16:19:55
772
原创 MySQL物理备份与逻辑备份工具及原理
摘要:本文系统介绍了MySQL的备份机制与ACID特性实现原理。物理备份工具(如Percona XtraBackup)通过直接复制数据文件实现高效备份,逻辑备份工具(如mysqldump)则生成可移植的SQL文件。在ACID特性方面,InnoDB引擎通过Undo/Redo日志、MVCC和锁机制分别保障原子性、一致性、隔离性和持久性。文章还详细解析了UPDATE语句的执行流程,包括语法解析、锁管理、数据修改和日志记录等关键环节,揭示了MySQL实现事务可靠性的底层机制。
2025-12-10 15:34:06
967
原创 Java Stream与for循环的核心区别与性能对比
JavaStream与for循环的主要区别在于编程范式和控制方式:Stream采用声明式编程和内部迭代,关注数据处理逻辑,支持惰性求值和并行操作;for循环则是命令式编程,需要显式控制迭代过程。性能方面,for循环在小数据量(1万以内)时效率更高,而Stream在大数据量(10万+)时性能优势明显,尤其并行流能显著提升处理速度。适用场景上,Stream适合复杂操作和大数据集处理,代码更简洁;for循环更适合简单逻辑和小数据量场景。选择时需权衡数据规模、代码可读性和性能需求。
2025-12-10 14:54:35
193
原创 java中的本地缓存怎么选?caffeine和guava cache如何使用
本文对比了Java中两种本地缓存框架Caffeine和Guava Cache的使用。通过代码示例展示了二者的基本配置方式:都支持过期时间和容量限制,Caffeine性能更优,而Guava提供自动加载机制。选型建议指出:高并发场景首选Caffeine(吞吐量是Guava的3倍),简单需求可用Guava。稳定性分析表明Caffeine在并发性能(细粒度锁)、内存管理(W-TinyLRU算法)、社区支持(Spring5采用)等方面表现更优,适合作为多级缓存架构的一级缓存。
2025-12-10 14:33:45
414
原创 java程序cpu持续彪高如何排查
摘要:Java程序CPU飙高排查流程包括:1)使用top定位高负载Java进程;2)通过top -Hp分析高负载线程;3)转换线程ID为十六进制并用jstack导出堆栈定位问题代码;4)检查死循环、高并发等常见原因;5)优化代码逻辑、资源配置,建议使用监控工具实时跟踪。核心是通过线程堆栈分析精准定位问题源头,针对性地进行优化调整。
2025-12-10 14:25:39
595
原创 MySQL Buffer Pool
本文深入解析MySQL BufferPool的架构设计和工作机制。BufferPool作为InnoDB的核心内存组件,通过缓存热数据减少磁盘I/O,其结构包含缓冲页、链表管理和哈希表定位。文章详细介绍了LRU算法优化(冷热分离)、脏页刷盘策略等关键机制,并给出性能优化实践:建议BufferPool大小设为内存50%-80%,高并发场景配置8-16个实例,监控缓存命中率和脏页比例。最后强调合理参数配置和定期监控对提升数据库性能的重要性。
2025-12-05 15:48:25
672
1
原创 HTTP和RPC详细说明
HTTP与RPC核心差异对比:HTTP基于文本协议(JSON/XML)通过URL调用,通用性强适合跨平台服务;RPC采用二进制协议(如gRPC)直接函数调用,性能更高适合内网微服务。关键区别体现在:1)传输效率-RPC二进制体积小30-50%;2)连接管理-RPC长连接降低40%延迟;3)协议开销-RPC精简字段减少CPU消耗。安全方面,HTTP依赖HTTPS强制加密,RPC需手动配置TLS。选择建议:公网/跨平台用HTTP,高性能内网交互选RPC。
2025-11-28 13:44:45
289
原创 Spring Boot 中的 IOC(控制反转) 和 AOP(面向切面编程) 是框架的两大核心机制,它们共同构建了Spring生态的基石。
摘要:本文详细介绍了Spring框架中的IOC(控制反转)和AOP(面向切面编程)两大核心技术。IOC通过容器管理对象生命周期和依赖关系,提供构造器、Setter和字段三种注入方式,实现松耦合和易于测试。AOP则将横切关注点模块化,通过切面、连接点、通知等元素实现日志记录、性能监控等功能。文章包含完整的SpringBoot项目示例,演示了注解配置、依赖注入、多种AOP通知类型及数据库操作,并提供了项目运行方式和代码结构说明,帮助开发者理解并应用这两项核心Spring技术。
2025-11-27 14:58:29
734
原创 Ngrok 内网穿透教程
本文简要介绍了ngrok的基本使用流程:首先下载软件并注册获取密钥;然后通过命令行将密钥添加到配置中;最后启动服务并指定端口号,即可通过Forwarding生成的地址访问本地服务。操作步骤包括下载安装、账户绑定和端口映射三个主要环节。
2025-11-27 14:37:20
187
原创 springboot事务
Spring Boot事务管理基于AOP(面向切面编程) 和数据库事务两大支柱实现。当你在方法上添加@Transactional注解时,Spring会为该Bean创建动态代理,在目标方法执行前后加入事务控制逻辑。
2025-11-26 10:28:10
847
原创 Springboot/Java邮件发送
摘要:本文介绍了Spring Boot邮件发送功能的配置与实现。通过Maven引入spring-boot-starter-mail依赖,在YML中配置SMTP服务器、账号密码等参数。核心组件MailSendUtil使用JavaMailSender发送带PDF附件的邮件,支持从本地文件系统或阿里云OSS获取附件,并处理了生产环境和开发环境的不同路径问题。代码实现了邮件发送、异常处理、资源释放等功能,最终返回发送结果状态。
2025-11-24 09:37:30
102
原创 Java根据模版导出下载pdf
文章摘要: ExportUtils是一个Java工具类,主要用于处理PDF和Word文档的导出功能。它提供了多种文档生成方法,包括: PDF导出功能:支持将HTML内容转换为PDF,处理中文字体显示,并可设置输出路径和文件名 Word导出功能:基于FreeMarker模板引擎生成Word文档 HTML渲染功能:使用FreeMarker模板渲染HTML内容 该类还包含文件路径配置、字体设置、异常处理等功能,支持生成带随机文件名的文档,并处理目录创建等文件系统操作。控制层示例展示了如何将用户简历数据导出为PDF
2025-11-22 17:17:43
19
原创 Java导入Excel表格
该Java方法实现了Excel表格数据导入功能,主要流程包括:1)使用XSSFWorkbook读取Excel文件;2)获取第一个工作表并遍历每一行数据;3)将每行数据映射到PersonalityAnswer对象;4)通过answerMapper将数据插入数据库。方法返回成功导入的记录数,处理过程中会跳过空行并捕获可能的IO异常。代码结构清晰,包含了数据校验和异常处理机制。
2025-11-22 17:10:57
14
原创 Java导出excel
摘要:该Java方法实现了一个Excel导出功能,主要用于导出用户Y豆明细数据。方法首先设置了禁止导出的时间段(中午11-13点和晚上17-19点),并限制最多导出31天数据。然后创建SXSSFWorkbook对象处理大数据量,设置表头信息后,通过分页查询获取数据并填充到Excel中。最后将生成的Excel文件通过HttpServletResponse输出下载。方法还包含一个私有方法setSXSSFRow,用于分页查询数据并写入Excel表格行。整个过程包含数据校验、分页处理和文件输出等关键步骤。
2025-11-22 17:05:43
18
原创 Mysql中InnoDB和MyISAM的区别、性能对比
InnoDB和MyISAM是MySQL的两种主要存储引擎,核心区别在于:InnoDB支持事务、行级锁和外键,采用聚集索引,适合高并发读写和数据一致性要求高的场景;MyISAM仅支持表级锁,无事务功能,但查询性能较好,适合读密集型应用。InnoDB通过MVCC实现高并发,崩溃恢复能力强;MyISAM在写入时会锁表,性能受限。选择时需根据事务需求、并发量和查询特点权衡。
2025-11-22 10:27:22
19
原创 Dubbo “No provider available“ 错误深度排查与解决方案
摘要:本文深入分析Dubbo服务调用中"Noprovideravailable"错误的排查与解决方案。错误表明消费者无法从Nacos注册中心找到可用的UserRemoteservice提供者。主要排查方向包括:服务提供者注册状态(是否正常启动和注册)、配置匹配问题(版本/分组一致性)、注册中心异常及网络限制。系统化排查步骤涵盖:检查Nacos服务列表、验证提供者日志、核对消费者配置、测试网络连通性。针对Dubbo2.7.15版本需特别注意启动类注解配置和多网卡问题。解决方案包括基础重启、
2025-11-22 10:08:43
204
原创 Java锁性能全面对比分析,Java锁实现原理深度解析
本文对比分析了Java中synchronized、ReentrantLock、ReadWriteLock和StampedLock的性能特点。synchronized在低并发下表现良好但高并发性能下降;ReentrantLock功能更丰富,高并发性能更优;ReadWriteLock适合读多写少场景;StampedLock的乐观读模式在读多写少时性能最佳。文章建议根据并发程度、读写比例等场景特点选择锁机制,并指出锁粒度、竞争程度和JVM优化是影响性能的关键因素,提供了Web应用、数据库事务等不同场景下的锁选型指
2025-11-19 09:32:38
528
原创 Java锁机制全面解析
本文全面解析Java并发编程中的锁机制,从锁的思想、特性、升级机制和共享方式等多个维度进行分类。重点介绍了乐观锁、悲观锁、公平/非公平锁、可重入锁、自旋锁等核心概念及其实现方式,并对比分析了synchronized、ReentrantLock等具体锁实现的特点。文章还提供了锁的选择策略及与JVM调优的关联性分析,强调需要根据业务场景、性能需求和系统架构综合选择合适的锁机制,以提升系统并发性能,避免死锁和性能问题。
2025-11-19 09:28:50
546
原创 JVM调优实战案例详解
JVM调优实战案例解析 本文通过多个典型案例详解JVM调优方法:1)电商秒杀系统通过增大新生代比例(NewRatio=1)和改用G1收集器,FullGC频率从30秒/次降至2小时/次;2)支付系统通过优化缓存机制和使用弱引用,FullGC频率降至每天1次;3)电商大促场景通过调整新生代大小(-Xmn4G)和预置大对象阈值(2M),保障系统稳定运行。文章还提出调优方法论:先定位问题,再按堆大小-代比例-GC策略顺序调整,最后通过压测验证。关键指标包括GC频率(FullGC建议<1次/天)、停顿时间(&l
2025-11-19 09:27:29
715
原创 JVM调优全面指南
《JVM调优全面指南》摘要:JVM调优应作为性能优化的最后手段,需遵循"先优化代码架构"、"明确调优目标"和"数据驱动决策"三大原则。主要参数包括堆内存设置(-Xms/-Xmx)、垃圾收集器选择(G1/ZGC等)和调试跟踪参数(GC日志/OOM转储)。实战案例展示了内存泄漏定位、堆大小调整和G1优化方法。常用工具有JDK命令行工具(jmap/jstat)、可视化工具(VisualVM/MAT)和GC日志分析工具。最佳实践建议统一初始和最大堆大小、合
2025-11-19 09:27:15
539
原创 JVM面试题全面解析
JVM面试题解析摘要:本文全面解析JVM核心知识点,包括基础概念(内存结构、生命周期)、高级内容(引用类型、垃圾回收算法与收集器)、Java 17新特性(ZGC、元空间),以及实战调优(内存溢出排查、监控工具使用)。重点涵盖JVM内存区域划分、四种引用类型区别、六种垃圾回收器特点,并提供了JVM调优策略和常用参数配置。针对面试常见问题,如栈内存溢出场景、性能分析工具等也进行了详细说明,是Java开发者系统掌握JVM核心知识的实用指南。
2025-11-19 09:26:58
374
原创 Redis缓存问题深度防护:穿透与击穿的预防策略
Redis缓存穿透与击穿防护策略 摘要:针对Redis缓存穿透问题,采用布隆过滤器(0.01误判率)+空值缓存(5分钟TTL)组合方案,可有效拦截非法请求。对于缓存击穿,推荐互斥锁(10秒超时)或逻辑过期技术(异步更新)两种方案。生产环境中建议根据业务场景组合使用,并建立三级监控体系(命中率/误判率/锁等待)。通过多级缓存架构(Caffeine+Redis+DB)和热点key自动识别等进阶优化,可显著提升系统稳定性。实施时应结合压测数据(redis-benchmark)进行参数调优。
2025-11-18 16:24:23
644
原创 Redis面试题全面解析,Redis性能优化全面指南,Redis缓存问题全面解析:雪崩、穿透与击穿
本文全面解析Redis面试常见问题,分为基础概念、高频问题、进阶问题、实战场景、运维优化和性能问题六大模块。重点内容包括:Redis基础概念如数据类型、持久化机制;核心优势如单线程模型和I/O多路复用;常见缓存问题(雪崩、穿透、击穿)的解决方案;生产环境优化策略如key设计、连接池管理和Pipeline使用;以及性能监控与故障处理方法。文章还深入探讨了Redis在多线程演变、高可用架构设计和延迟队列实现等高级应用场景,并提供了详细的性能优化指南,涵盖数据结构选择、大Key处理、内存配置和CPU优化等关键点。
2025-11-18 16:17:45
744
原创 Java八股文面试题库大全(2025终极完整版)
本文整理了2025年Java面试题库,涵盖核心知识点和最新技术趋势。主要内容包括:1)Java基础(数据类型、面向对象特性);2)JVM原理与调优(内存模型、类加载机制);3)多线程与并发(线程池、锁机制);4)集合框架(HashMap扩容原理);5)设计模式(单例、工厂模式);6)Spring框架(AOP、事务管理);7)2025新技术(Records、虚拟线程);8)面试技巧(STAR原则、问题分层回答)。全文提供代码示例和深度解析,适合Java开发者系统复习面试知识。
2025-11-18 16:04:43
1610
原创 linux-centos6.4安装mysql5.6.14数据库
本文详细介绍了在Linux系统中卸载旧版MySQL并安装配置MySQL 5.6.14的全过程。主要内容包括:1)卸载旧版MySQL的两种方法;2)安装编译所需的依赖包并下载MySQL源码;3)使用cmake进行编译安装;4)配置MySQL用户权限和初始化数据库;5)设置MySQL服务和开机启动;6)配置root密码和远程访问权限;7)防火墙设置以开放3306端口。文章还特别说明了CentOS 7中需要使用firewalld来配置端口。整个安装过程约30分钟,最后提供了完整的MySQL服务配置方案。
2025-10-20 09:10:42
367
原创 linux安装redis
本文详细介绍了在Linux系统上安装Redis的完整步骤:1.环境准备,包括安装依赖工具和下载Redis源码包;2.编译安装过程,涵盖解压源码、编译测试和安装;3.配置Redis服务,包括创建配置目录、修改配置文件及设置权限;4.创建Systemd服务管理Redis进程;5.启动测试,包含服务启动、开机自启设置和连接测试。特别提醒在使用Systemd时要注意daemonize参数的设置与系统服务管理方式保持一致。
2025-10-20 09:10:32
592
原创 linux安装jdk
本文介绍了在Linux系统下安装JDK8的详细步骤:1)从Oracle官网下载对应版本的JDK;2)使用root权限在/usr目录下创建java安装目录;3)将JDK压缩包拷贝至该目录并解压;4)配置环境变量,编辑/etc/profile文件添加JAVA_HOME等路径;5)通过source命令使配置生效或重启系统;6)使用java -version验证安装。文中还特别提醒要注意系统位数(32位/64位)与JDK版本匹配问题,并给出了查看系统位数的方法。若出现执行错误,可能是因系统与JDK版本不兼容所致。
2025-10-20 09:10:20
355
原创 java8中list特性
Java8 Stream API列表操作摘要: 过滤与转换:使用filter()过滤元素,map()转换类型(如String转Integer) 去重处理:distinct()基础去重,TreeSet+Comparator实现对象属性去重 排序操作:sorted()支持单字段升/降序,thenComparing()实现多条件排序 数学计算:提供sum()、max()、min()、average()等聚合操作,支持BigDecimal精度控制 分组转换:groupingBy()实现数据分组,toMap()将列表
2025-10-20 09:10:05
250
原创 springboot整合腾讯身份证、营业执照图片识别
腾讯云AI服务的Java SDK集成与使用。通过Maven引入tencentcloud-sdk-java依赖(最新版本3.1.709)。然后定义TencentParam配置类,通过@ConfigurationProperties加载腾讯云API所需的参数。核心工具类TencentAiUtil提供了多种AI功能:1)营业执照识别(recognizeBizLicense) 2)身份证识别(recognizeIDCard)。每个方法都通过TencentCloudSDK的Credential认证,并封装了请求/响应
2025-10-17 09:05:27
152
原创 redisson实现分布式锁接口
本文介绍了如何使用Redisson实现分布式锁功能。首先通过Maven引入Redisson依赖(3.15.4版本),然后配置RedissonConfig类连接Redis服务器,设置主机、端口和密码等参数。核心实现RedissonDistributeLocker类提供了多种锁操作方法,包括加锁、解锁、尝试加锁、查询锁状态等功能,支持设置超时时间和时间单位。通过RedissonClient获取RLock对象来操作分布式锁,实现了完整的分布式锁管理功能,可用于解决多进程/多服务器的并发控制问题。
2025-10-17 09:05:13
111
原创 springboot整合百度文本相似度、文本纠正、词法分析
该摘要描述了一个Java项目中使用百度AI开放平台NLP服务的实现方案。主要包括: Maven依赖配置,引入百度Java SDK 4.15.1并排除了slf4j-simple依赖 BaiduParam配置类,通过@Value注解获取百度API的AppId、AppKey和SecretKey BaiduApiUtil工具类,封装了多种NLP功能: 获取AccessToken 关键词提取 短文本相似度计算 词法分析 文本纠错 中文DNN语言模型 通过OkHttpClient实现HTTP请求,使用AipNlp客户端
2025-10-17 09:05:01
203
原创 Base64转MultipartFile
摘要:Base64DecodedMultipartFileUtil是一个实现MultipartFile接口的工具类,主要用于Base64编码与文件之间的转换。核心功能包括:1)将Base64字符串转为MultipartFile对象;2)将文件转为Base64字符串。该类处理了Base64数据解码、文件流操作等内容,并提供了文件传输方法(transferTo)。通过实现MultipartFile接口,可以方便地处理Web文件上传场景中的Base64编码数据转换需求。
2025-10-17 09:04:46
131
原创 springboot整合腾讯IM
腾讯云IM即时通讯服务的Java SDK集成与使用。内容包括:1) Maven依赖配置,引入腾讯云IM SDK;2) 定义了两个常量类TencentImConstant和TencentImApiConstant,包含IM消息类型、API接口路径等常用参数;3) 核心工具类TencentImUtil封装了账户管理、单聊消息、资料管理等常用功能,提供用户签名生成、账号导入、消息发送、会话管理等方法的实现。该工具类通过HTTP请求与腾讯云IM服务交互,支持文本、文件、地理位置等多种消息类型,并整合了Redis缓存
2025-10-17 09:04:31
342
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅