- 博客(32)
- 收藏
- 关注
原创 Java静态代理
本文全面解析Java静态代理模式,涵盖基础概念、两种实现方式(基于接口和继承)及典型应用场景(日志记录、权限控制等)。文章详细对比了静态代理与动态代理的特性差异,总结出静态代理简单直观但灵活性不足的特点,并给出设计原则和优化技巧。最后探讨了静态代理在MyBatis、Spring等框架中的实际应用,指出其作为理解代理模式基础的重要价值。全文通过丰富代码示例,帮助开发者系统掌握这一关键技术。
2025-08-13 14:00:00
789
原创 Hutool Java工具类库-HttpUtil(HTTP 客户端工具类)
Hutool工具包的HttpUtil模块封装了JDK的HttpURLConnection,提供简单易用的HTTP客户端功能。本文详细介绍了HttpUtil和HttpRequest类的核心方法,包括GET/POST请求、文件上传下载、URL处理等常用功能,并展示了链式构建请求、HTTPS处理、RESTful API调用等高级用法。文章还提供了性能优化建议和异常处理方案,帮助开发者高效安全地进行HTTP通信。HttpUtil通过简洁API、自动编码处理、连接池管理等特性,显著提升了Java HTTP开发的效率。
2025-08-13 10:00:00
1629
原创 Java开发安全防护:反序列化漏洞防御
本文深入探讨了Java反序列化漏洞的安全威胁与防御策略。首先解析了反序列化漏洞的形成原理,指出其通过恶意序列化数据触发Gadget链可导致远程代码执行等高危攻击。文章介绍了现代自动化挖掘技术JDD的创新方法,其自底向上的链搜索策略显著提升了检测效率。在防御方面,提出了输入验证、运行时防护和架构隔离等多层次防护体系,并推荐使用JSON等替代方案。最后强调了集成安全框架、建立安全开发工具链和遵循安全编码实践的重要性,为构建安全的JavaWeb应用提供了全面指导。
2025-08-02 10:00:00
1035
原创 Java Gadget链
Gadget链是由无害代码片段组成的恶意调用链,在Java反序列化漏洞中被利用执行危险操作。其核心要素包括触发点、传递链和执行点。自动化挖掘技术通过静态分析发现Gadget代码片段,使用符号执行和约束求解构建有效攻击链。典型应用包括ROP攻击和二进制漏洞利用,代表性工具有ROPgadget等。防御策略包括输入白名单验证和运行时防护技术,如Java Agent检测危险类。复旦大学JDD框架通过分段组合和约束求解显著提升了链挖掘效率,发现多个新漏洞。
2025-08-02 09:00:00
598
原创 MYSQL分库分表
分库分表是解决数据库性能瓶颈和存储瓶颈的关键技术,主要包括垂直拆分和水平拆分两种形式。垂直拆分通过按字段分离不常用数据或业务模块来提高性能,而水平拆分则通过按行分散数据来突破单表容量限制。实施时需考虑数据量、增长速度、查询性能等指标,并选择合适的拆分策略(如范围分片、哈希分片)。文章详细介绍了MySQL分库分表的实现方案(应用层实现、中间件实现),以及分布式ID生成、跨库查询、分布式事务等挑战的解决方案,最后通过电商订单系统和社交平台的实战案例展示了具体应用。
2025-07-31 23:49:18
882
原创 Java内存模型(JMM)
摘要:Java内存模型(JMM)是Java并发编程的核心机制,定义了多线程环境下变量的访问规则。文章深入解析JMM的核心概念,包括主内存/工作内存、happens-before原则、volatile语义、synchronized与锁机制等关键技术。通过典型示例分析内存可见性问题,比较不同同步机制的差异,并给出双重检查锁定等常见问题的解决方案。同时探讨JMM在现代Java并发工具类中的应用,以及伪共享、安全发布等实战问题的最佳实践。最后总结了JMM使用中的关键原则,帮助开发者构建正确高效的多线程程序。
2025-07-30 23:00:07
1182
原创 分布式系统:一致性
《Java分布式系统一致性解决方案与实践》摘要:本文系统介绍了Java在分布式一致性领域的完整技术体系。首先从分布式一致性问题本质出发,对比Java内存模型与分布式一致性的相似性。重点讲解了Raft算法在Java的实现、基于ZooKeeper的分布式锁完整实现方案,以及Spring+Seata的分布式事务实践。文章还深入分析了现代框架如etcd、Hazelcast的使用方法,并提供了重试策略、一致性哈希等最佳实践。最后探讨了Jepsen测试框架、虚拟线程、CRDT等前沿技术。通过基础理论、主流框架和新兴技术
2025-07-30 22:43:34
970
原创 数据库-索引
本文全面解析数据库索引的核心技术与优化实践。首先阐述索引本质是一种高效查找结构,可避免全表扫描。接着系统介绍B-Tree、哈希、全文、空间等主流索引类型的特点及适用场景。重点讲解索引设计黄金法则,包括选择高选择性列、遵循最左前缀原则、避免函数操作等关键要点。同时深入高级优化策略如覆盖索引、索引条件下推和索引合并。通过电商订单和社交动态等实战案例展示优化技巧,并介绍索引监控维护方法及不同数据库的索引特性差异。最后强调应避免过度索引,通过测量验证效果,持续优化以达到最佳性能平衡。
2025-07-29 23:20:04
1199
原创 Java-分布式锁
分布式锁是解决分布式系统资源互斥访问的关键技术,需满足互斥性、无死锁和容错性。主流实现方案包括:基于数据库(乐观锁/悲观锁)、Redis(SETNX/Lua脚本)和ZooKeeper(临时节点),各具性能与一致性特点。Redis方案通过Redisson实现自动续期和红锁算法增强可靠性。优化手段包括锁分段(提升并发)和本地缓存(降低锁竞争)。监控需关注等待时间、持有时间和失败率等指标。选型需权衡一致性、性能和复杂度,如Redis适合允许短暂不一致场景,ZooKeeper适用于强一致性要求的配置管理。
2025-07-28 23:02:19
552
原创 Java设计模式-通俗举例
《设计模式生活图解:23种模式轻松入门》摘要:本文用生活化案例生动解析23种设计模式。创建型模式如单例(公司CEO唯一)、工厂(奶茶店点单)解决对象创建问题;结构型模式如适配器(电源转换插头)、装饰器(奶茶加料)处理对象组合;行为型模式如观察者(微信群通知)、策略(出行导航)管理对象交互。每个模式都配有代码示例和生活类比,如用游戏存档理解备忘录模式,用红绿灯解释状态模式。这种通俗易懂的讲解方式,让抽象的设计模式变得具体可感,帮助开发者快速掌握核心思想并灵活应用。
2025-07-28 22:44:32
812
原创 JAVA-设计模式-进阶篇
原理:提供一个创建一系列相关或相互依赖对象的接口结构与工厂方法区别工厂方法:创建单一产品抽象工厂:创建产品族应用场景GUI组件库跨平台应用。
2025-07-24 23:45:15
841
原创 Java设计模式-入门篇
本文通俗讲解Java常用设计模式:单例模式确保全局唯一实例(如配置管理器);工厂模式封装对象创建过程;观察者模式实现对象状态变化的自动通知;策略模式支持运行时算法切换;装饰器模式动态扩展对象功能。文章强调设计模式是解决问题的"装修模板",能提高代码复用性和可维护性,但反对过度设计,建议根据实际需求灵活选用。每种模式都配有代码示例和现实类比(如微信公众号对应观察者模式),并给出"单例CEO、工厂造汽车"等记忆口诀。核心原则是理解优于套用,合理组合使用设计模式。
2025-07-24 23:12:50
431
原创 Java并发编程:锁机制
摘要:本文深入探讨Java并发编程中的悲观锁与乐观锁机制。悲观锁(如synchronized和ReentrantLock)采用"先锁定后访问"策略,适合高冲突场景;乐观锁(基于CAS)采用"先修改后验证"策略,适合低冲突环境。文章从原理、实现、性能对比到适用场景进行系统分析,并提供了高级优化技巧和实战案例。研究发现:悲观锁实现简单但吞吐量低,乐观锁无阻塞但存在ABA问题。建议根据临界区大小、冲突概率和一致性需求选择锁机制,强调实际性能测试的重要性,并展示了如何组合使用
2025-07-23 23:39:25
1056
原创 Java函数指南:从Function到BiFunction的深度解析
Java 8函数式编程核心概念与应用实践 摘要:本文系统介绍了Java 8引入的函数式编程特性,重点解析了函数式接口的核心概念与使用方式。主要内容包括:1)函数式接口定义及优势,对比传统匿名类的冗长代码;2)详细分类讲解java.util.function包中的40+函数式接口,包括Function、Consumer、Supplier等核心类型及其原始类型特化版本;3)高阶函数组合技巧,如函数组合、部分应用和柯里化;4)实际应用场景分析,包括集合处理和异步编程;5)特别解析了apply()与andThen(
2025-07-22 23:41:06
1284
原创 Java函数式编程深度解析:从基础到高阶应用
Java 8函数式编程深度解析:从Lambda到Stream的全面实践指南 本文系统介绍Java 8引入的函数式编程特性,包括核心概念、实现方式和应用场景。首先讲解函数式接口和Lambda表达式语法,对比其与传统匿名类的差异;然后深入解析Stream API的创建、操作和收集器使用,包括并行流优化;接着展示高阶编程技巧如函数组合、柯里化等;最后通过实战案例演示如何重构传统设计模式,并给出性能优化建议。文章强调函数式编程能使代码更简洁、可维护且易于并行化,是Java开发者必须掌握的核心技能。
2025-07-22 23:07:48
1022
原创 Java异步编程全解析:从基础到高阶实战
《Java异步编程核心技术解析》 摘要:本文系统讲解了Java异步编程的演进历程和核心技术。从早期线程模型到Java8的CompletableFuture,再到Java21的虚拟线程,展示了异步编程如何从复杂变得简单高效。文章对比了同步与异步编程的本质区别,分析了异步编程解决吞吐量、延迟和资源利用率三大核心问题的优势。重点介绍了CompletableFuture的链式调用、异常处理和组合操作,以及虚拟线程的轻量级特性。同时指出了回调地狱、异常丢失等常见陷阱,并给出线程池配置、批量处理等优化建议。最后探讨了响
2025-07-10 00:00:50
1060
原创 Java 21虚拟线程实战:高并发编程的新纪元
Java 24在2025年3月正式发布,带来了多项突破性创新,彻底改变了Java开发者的编程体验。本文将深入剖析JDK 24中最引人注目的三项新特性:原始类型模式匹配、虚拟线程的成熟化应用以及后量子密码学支持,通过真实代码示例和性能对比,展示这些特性如何解决长期困扰Java开发者的核心问题,并提升现代应用的性能与安全性。
2025-07-07 23:50:37
847
原创 Java在AI与量子计算时代的新突破:2025年技术前瞻与实践指南
2025年Java技术趋势报告:AI与云原生时代的新机遇 Java在2025年展现出强劲的生命力,Java24版本带来20多项革新特性,重点聚焦AI加速和量子安全领域。在AI方面,VectorAPI将矩阵运算性能提升3-5倍,使Java成为超越Python的AI生产级解决方案;在云原生领域,Quarkus等框架启动时间缩短至50ms以内,75%的新应用采用微服务架构。同时,Java24引入后量子加密算法,为金融、政务等敏感领域提供安全保障。性能优化方面,值类型和ZGC垃圾收集器使Java达到接近C/C++的
2025-07-04 23:15:39
1427
原创 JAVA-线程池
摘要:本文系统介绍了Java中常见的线程池类型及其适用场景。主要内容包括:1)固定线程池(FixedThreadPool)适用于负载稳定的任务;2)缓存线程池(CachedThreadPool)适合处理突发性短任务;3)单线程池(SingleThreadExecutor)保证任务顺序执行;4)自定义线程池(ThreadPoolExecutor)提供最灵活的参数控制;5)定时任务线程池(ScheduledThreadPool)支持延迟和周期性任务;6)工作窃取线程池(WorkStealingPool)优化并行
2025-07-04 00:05:25
1268
原创 Hutool Java工具类库-FileUtil(文件工具类)
Hutool的FileUtil几乎涵盖了所有常见的文件操作场景,且方法设计简单直观,可以显著减少Java文件操作相关的样板代码。建议在实际使用时结合Hutool的其他工具类(如IoUtil、CharsetUtil等)以获得更好的开发体验。
2025-07-02 23:18:51
1727
原创 Excel宽度自适应工具类
Hutool的ExcelUtil工具类自动列宽功能存在性能问题、计算不精确、格式限制和API局限性等弊端。为此,基于Hutool的Excel自适应宽度工具类ExcelAdaptiveWidthUtils,通过改进算法支持中英文混排、设置最大列宽限制、优化性能等方式解决问题。该工具类提供多Sheet页导出、自定义样式、响应式输出等功能,并封装了SheetDto数据类来管理导出参数。核心方法setSizeColumn实现了基于GBK编码的精确列宽计算,同时支持从指定行开始计算和最大宽度限制,有
2025-07-02 22:50:20
226
原创 Oracle 删除重复数据并只保留一条记录
Oracle数据库删除重复数据的方法包括:1)使用ROWID子查询删除非最小ROWID记录;2)利用ROW_NUMBER()标记并删除重复行;3)通过创建临时表保留唯一数据后再导回。建议操作前备份数据,大表优先选择临时表法,注意处理表约束问题。
2025-07-02 00:06:23
1398
原创 JAVA-多线程
Java多线程是实现并发编程的核心技术,主要通过Thread类、Runnable接口和Callable接口三种方式创建线程。多线程共享进程资源,能提高CPU利用率、增强响应速度,但需注意线程安全和死锁问题。继承Thread类是最基础方式;实现Runnable接口更灵活且支持资源共享;Callable接口则允许线程返回结果。开发者应根据具体需求选择合适的多线程实现方式,同时处理好并发带来的同步问题。
2025-07-01 00:08:45
322
原创 Oracle—数据恢复
Oracle数据库从10g版本开始引入回收站(RecycleBin)机制,被DROP的表会暂时保存在回收站(逻辑存储区域)中,可通过FLASHBACK命令恢复。回收站状态可通过参数查询和设置(会话/系统级别),但空间不足时会按FIFO原则自动清理。对于确定删除的表可使用DROP...PURGE彻底删除。此外,Oracle还提供基于UNDO的闪回查询功能,可恢复误删除的数据到指定时间点,操作前需确认时间点并开启行移动功能。两种机制都需注意空间占用问题。
2024-02-01 16:50:11
1862
1
原创 Hutool Java工具类库-ExcelUtil
ExcelUtil 是一种处理 Excel 表格的工具库,可以很方便的进行表格的读取、写入、处理等操作。
2023-12-27 16:12:44
9166
1
原创 GitLab安装
本文介绍了Git分支模型和客户端安装配置流程。主要内容包括:1.安装Git客户端及TortoiseGit图形工具(含中文语言包);2.详细说明SSH配置步骤,解释SSH比HTTP更便捷的原因;3.指导生成SSH密钥对(通过ssh-keygen命令),并将公钥配置到GitLab账户的完整流程。通过SSH配置可实现免密提交代码,提升开发效率。
2022-11-21 17:02:17
1029
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅