- 博客(375)
- 资源 (3)
- 收藏
- 关注
原创 Git | Git 核心命令深入解析:从原理到实战
本文深入解析Git六大核心命令的工作原理,帮助开发者建立清晰的Git心智模型。首先介绍Git的底层数据模型,包括三个区域(工作目录、暂存区、本地仓库)和四种对象(Blob、Tree、Commit、Tag)。随后详细剖析git commit、git push、git fetch、git merge、git pull和git rebase六大命令的技术实现原理,通过原理图示和典型场景说明各命令的执行机制与差异。特别对比了merge与rebase的不同应用场景,并强调公共分支应避免使用rebase以防止历史重写风
2026-05-21 15:39:33
398
原创 AI | Java工程师视角看大模型应用四件套:RAG、Agent、微调、提示词工程
本文介绍了四种将大模型应用于企业业务的关键技术:提示词工程、RAG、Agent和微调。提示词工程通过结构化指令优化模型输出;RAG通过向量数据库实现知识检索增强;Agent赋予模型调用工具和执行任务的能力;微调则针对特定业务数据训练模型。文章用Java类比解释技术原理,并分析了各技术的适用场景,为企业应用大模型提供了实用技术路线。这些方法可解决模型不懂业务数据、无法执行任务等实际问题,帮助开发者更高效地将AI能力融入业务系统。
2026-05-14 09:29:46
369
原创 MySQL | DBeaver Mac版下载、安装与使用指南
在数据库管理领域,DBeaver 堪称一款“瑞士军刀”式的工具。它是一款通用的数据库管理工具,支持 80 多种不同类型的数据库,无论是 MySQL、PostgreSQL、Oracle,还是 MongoDB、Redis,都能一网打尽。对于 Mac 用户而言,DBeaver 提供了良好的原生支持和直观的可视化界面。今天,我们就来详细梳理一下如何在 macOS 上下载、安装并使用 DBeaver。
2026-05-12 18:21:08
583
原创 AI | 读懂AI应用开发核心概念:Token、MCP、Skills、Function Calling、Agent等
摘要:本文系统梳理了AI应用开发中的核心术语体系,包括Token(LLM计费与上下文的基本单位)、API请求次数(交互计数器)、提示词库(Prompt模板管理)、Function Calling(模型调用外部函数的能力)、Tool(具体功能实现)、Skills(任务级能力封装)、MCP(标准化通信协议)、Agent(自主决策智能体)、供应商(模型服务提供商)和SDK(开发工具包)。重点分析了这些概念间的交互关系,如Token与API请求次数的制约关系、Function Calling与Tool的层级关系、A
2026-05-11 17:01:16
457
原创 网络安全 | 浅析跨网访问对WAF防护架构的影响:网络流向与延迟对比
摘要: 本文对比分析了WAF(Web应用防火墙)在电信单线部署场景下,同网(电信)与异网(移动)客户端访问的延迟差异。同网访问路径(电信→电信WAF→电信源站)延迟稳定(RTT 12-32ms),而异网访问(移动→电信WAF→电信源站)因跨网交换需额外支付排队和绕路成本,RTT增至46-166ms,且抖动明显。关键瓶颈在于运营商互联点的队列延迟(10-50ms)和双向跨网开销。优化建议包括采用WAF多线BGP接入、前置CDN加速或专线方案,以平衡成本与体验。实测可通过traceroute、ping和curl
2026-05-09 10:39:21
693
原创 MySQL | MySQL 8.0 权限管理实践-精确赋予库、表只读等权限
MySQL 8.0权限管理指南摘要 MySQL 8.0在权限管理方面进行了重大改进,引入了角色、动态权限等新特性。本文详细介绍了MySQL 8.0的权限体系,包括核心权限类型、语法基础及7个典型应用场景。主要内容包括:创建只读用户、使用角色统一管理权限组、限制特定表查询、创建读写用户、动态权限应用、列级权限实现以及账户安全设置。通过权限决策流程图和架构图,展示了权限分配的完整流程。最佳实践部分推荐使用角色管理权限组,并提供了标准角色创建示例。全文结合具体SQL语句,帮助DBA实现精确的权限控制。
2026-05-08 15:44:12
351
原创 AI | CC GUI 集成 IDEA 完整教程
CC GUI是一款开源免费的JetBrains IDE插件,支持2024.2及以上版本的IDEA。它集成了Claude Code和OpenAI Codex的能力,提供可视化AI编程辅助。安装需先确保Node.js环境,通过插件市场搜索安装后,需完成SDK依赖安装和AI模型配置。支持多种模型接入方式,包括复用本地配置或添加自定义供应商。主要功能包括对话交互、代码审查、Diff对比等,还支持MCP扩展和Skills技能包扩展能力。常见问题包括插件搜索不到、SDK安装失败等,可通过检查版本、网络或手动配置解决。项
2026-05-07 09:22:05
4754
5
原创 Java | Java内存模型JMM
摘要: Java内存模型(JMM)是多线程编程的核心规范,解决可见性、原子性和有序性问题。JMM定义了主内存(共享变量存储)与工作内存(线程私有副本)的交互规则,确保线程安全。通过volatile、synchronized和原子类可保证变量修改的可见性;原子性通过锁或CAS操作实现;有序性则依赖Happens-Before原则防止指令重排。示例代码演示了非原子操作(如count++)的线程安全问题,以及volatile如何解决可见性问题。理解JMM是编写高效、正确并发程序的基础。
2026-05-06 14:47:16
614
原创 Java | JVM内存结构
JVM内存结构核心要点摘要 JVM内存结构是Java程序运行的基础,主要包括以下核心区域: 程序计数器:线程私有,记录当前线程执行的字节码行号,唯一不会OOM的区域 虚拟机栈:线程私有,存储栈帧(包含局部变量表、操作数栈等),可能出现StackOverflowError和OOM 本地方法栈:为Native方法服务,与虚拟机栈类似 堆内存:线程共享的最大区域,存储对象实例和数组,GC主要工作区域,分新生代(Eden/S0/S1)和老年代 方法区:存储类信息、常量、静态变量等,JDK8后改为元空间实现 关键特性
2026-05-06 14:03:06
364
原创 Java | Java线程池执行流程分析
本文详细解析了Java线程池的执行流程,通过流程图和代码示例展示了线程池的核心工作机制。主要内容包括: 线程池优势:复用线程、控制并发、便于管理 执行流程关键步骤: 判断核心线程数是否已满 判断任务队列是否已满 判断最大线程数是否已满 执行拒绝策略 四种拒绝策略对比: AbortPolicy(默认):抛出异常 CallerRunsPolicy:调用者线程执行 DiscardPolicy:静默丢弃 DiscardOldestPolicy:丢弃队列头部任务 通过三个Demo示例演示了不同配置下线程池的行为表现,
2026-04-30 16:42:33
402
原创 网络安全 | TCP三次握手与四次挥手
本文通过流程图直观展示了TCP协议的三次握手和四次挥手过程。三次握手通过SYN和ACK报文确保双方通信能力,避免历史连接干扰;四次挥手则因全双工特性需分别关闭两个方向的数据通道。文章详细解析了每个步骤的报文内容和状态变化,并解答了常见问题,如为何需要三次握手而非两次、客户端为何等待2MSL等。最后提供了Linux下查看TCP状态的命令和连接建立与关闭的对比总结,帮助读者全面理解TCP连接管理的核心机制。
2026-04-30 16:28:21
603
原创 Spring | 深度剖析Spring Bean的生命周期:从加载到销毁的完整流程
Spring Bean生命周期全解析:从创建到销毁的完整流程 Spring Bean的生命周期涵盖了从实例化到销毁的完整过程,主要包括以下几个关键阶段: 容器启动时加载Bean定义并实例化对象 依赖注入阶段完成属性赋值 Aware接口回调(如BeanNameAware) BeanPostProcessor前置处理 初始化阶段(@PostConstruct→InitializingBean→init-method) BeanPostProcessor后置处理 业务使用阶段 销毁阶段(@PreDestroy→D
2026-04-30 16:08:35
229
原创 网络安全 | 深度解析 F5 BIG-IP Advanced WAF:Bot 防护全攻略
F5 BIG-IP AWAF Bot防护技术解析 本文深入剖析F5 BIG-IP Advanced WAF的Bot防御方案,该技术采用四层检测机制实现精准防护:1)特征签名检测识别已知恶意工具;2)JavaScript挑战验证浏览器真实性;3)行为分析监控异常访问模式;4)Device ID指纹追踪实现跨会话设备识别。系统提供Relaxed、Balanced、Strict三种预设策略模板,支持从告警到阻断的多种处置动作。核心优势在于多层级自适应检测,既能区分人类用户与善意机器人,又可有效防御撞库、恶意爬取等
2026-04-22 15:06:45
776
5
原创 网络安全 | 学习NAT44、NAT46、NAT64 与 NAT66原理
特性IPv4IPv6地址长度32 bit128 bit地址数量~43 亿2^128表示方式点分十进制 (192.168.1.1)十六进制冒号分隔 (2001:db8::1)NAT 必要性极高(因地址短缺)理论上不需要,但实践中存在。
2026-04-22 08:56:45
535
原创 网络安全 | NPing网络包生成工具详解
NPing是Nmap套件中的网络包生成工具,支持发送自定义TCP、UDP、ICMP和ARP数据包。相比传统ping工具,NPing提供更灵活的协议控制、精确速率调节和数据负载注入能力。本文详细介绍NPing的安装方法、核心工作原理、命令参数详解及典型应用场景,包括端口连通性测试、防火墙规则验证、网络性能评估和压力测试等。通过原始套接字技术,NPing可直接构造网络数据包,配合tcpdump抓包分析,可满足网络安全测试、协议调试和故障排查等需求。
2026-04-16 09:30:57
522
原创 网络安全 | WAF能力全景解析
第一层Web攻击防护SQL注入、XSS、命令注入、文件包含、WebShell、CSRF、SSRF、XXE第二层流量控制与访问管理区域封禁、CC防护、精准访问控制、IP黑白名单、扫描防护、协议合规第三层业务安全防护Bot管理、爬虫防护、防暴力破解、防批量注册、防撞库、人机识别第四层数据安全防护敏感信息防泄漏、网页防篡改、防绕过检测、API安全、威胁情报第五层智能与AI防护提示词注入防护、语义分析、行为分析、机器学习检测、内容合规。
2026-04-14 13:36:08
553
原创 网络安全 | 如何通过CDN和WAF联动实现加速和安全双协同的网站防护体系
CDN与WAF协同部署架构解析 本文系统阐述了CDN与WAF联合部署的技术方案。传统独立部署模式下,CDN仅解决加速问题而缺乏防护,WAF提供安全但影响性能。通过创新的"边云协同"架构,实现了"加速+防护"双提升:CDN节点负责内容分发加速,WAF进行深度安全检测,形成"加速-防护-回源"的完整闭环。文章详细对比了CNAME接入与透明代理两种模式,重点说明了X-Forwarded-For头的真实IP获取机制,并配以完整的流量走向图和架构分层图。该方
2026-04-12 15:29:09
445
原创 网络安全 | tcpdump使用详解
tcpdump是Linux/Unix系统下强大的网络抓包工具,可用于捕获和分析网络数据包。本文详细介绍了tcpdump的功能、工作原理、安装方法及常用命令参数,包括接口选择(-i)、抓包数量控制(-c)、名称解析(-n/-nn)等。文章还讲解了过滤表达式语法,涵盖类型、方向、协议过滤以及TCP标志位检测,并解析了输出格式中各字段含义。通过丰富的示例展示了tcpdump在网络诊断中的实际应用,帮助用户高效排查网络问题。
2026-04-12 14:48:31
849
1
原创 Java | 基于 Feign 流式传输操作SFTP文件传输
本文介绍了基于SFTP协议的企业级文件传输架构设计,通过Feign客户端实现跨服务调用,重点解决大文件传输中的内存溢出问题。文章详细解析了SFTP的两种认证方式(密码和公钥认证)及其适用场景,提出采用流式传输和分块处理的技术方案,并给出Java实现中的关键技术选型(JSch、Spring Boot、Feign等)。核心实现包括SFTP配置管理、连接池优化以及资源释放机制,确保大文件传输的安全性和高效性。该方案适用于金融系统对账单处理等需要稳定文件传输的业务场景。
2026-04-12 13:40:53
420
原创 Spring | @EventListener事件机制深度解析
摘要: 本文深入解析Spring事件机制的原理与实现,通过商品删除场景展示模块解耦方案。Spring事件机制基于事件驱动架构,包含事件、监听器、发布器和广播器四大核心组件。文章详细剖析了@EventListener注解的工作原理,包括事件类型解析、监听器注册和事件发布流程。实战部分提供了一个完整的商品删除事件处理Demo,包含自定义事件、发布器及多个监听器实现,展示了如何通过事件机制实现库存、订单和统计模块的解耦,提升系统可维护性。
2026-03-13 10:30:05
466
原创 XXL-Job | 基于分片广播的海量数据处理实践
XXL-Job分片广播实现海量数据并行处理 摘要:本文介绍了如何利用XXL-Job的分片广播功能解决2000万用户数据导出的技术难题。通过将大数据集划分为多个分片,由多个执行器实例并行处理,有效避免了单机处理时的性能瓶颈。文章详细讲解了分片广播的原理、与普通分片的区别、配置方法及Java实现逻辑,包括分片策略设计、JobHandler实现等关键环节。该方案可显著提升大数据处理效率,适用于日志处理、报表生成等需要并行处理海量数据的业务场景。
2026-01-26 16:42:37
777
原创 网络安全 | Bot攻击与防护
Bot攻击已成为网络安全重大威胁。恶意机器人程序利用业务逻辑缺陷,通过API隐蔽攻击,具有高度智能化、规模化和低成本特点。常见攻击包括撞库、DDoS和API滥用等,如Mirai僵尸网络控制IoT设备发动攻击。传统防御如IP限制、验证码等逐渐失效,需采用API资产管理、AI行为分析、多层DDoS防护等现代手段,建立多维度访问基线和威胁建模,才能有效应对日益复杂的Bot自动化攻击。
2025-11-18 14:33:04
1258
原创 网络安全 | 深入了解OAuth 2.0原理
OAuth 2.0是一种授权开放标准,允许第三方应用在无需获取用户密码的情况下访问用户资源。它通过令牌(Token)机制实现授权,区分了授权(决定权限)与认证(验证身份)的概念。核心流程包括用户认证、颁发访问令牌和资源访问,涉及资源所有者、客户端、资源服务器和授权服务器四个角色。授权码模式是最安全的流程,适用于有后端服务器的应用。OAuth 2.0还支持其他授权模式以适应不同场景,并强调安全防护机制,如PKCE、严格URI验证和多因素认证,以确保最小权限和防止攻击。
2025-11-16 16:30:09
911
1
原创 网络安全 | 深入解析CSRF攻击与防御实战
本文深入剖析了CSRF(跨站请求伪造)攻击的原理及防御措施。CSRF通过诱骗已认证用户执行非预期操作,利用浏览器自动携带认证信息的机制实施攻击。文章通过Java代码示例展示了一个典型的CSRF攻击场景:恶意网站利用GET请求修改用户邮箱。针对CSRF防御,提出了三种核心方案:1)使用Anti-CSRF Token机制;2)利用Spring Security内置的CSRF防护功能;3)配置SameSite Cookie属性作为深度防御。其中重点介绍了Spring Security如何自动生成和验证CSRF T
2025-11-16 15:51:53
877
1
原创 网络安全 | 深入解析XSS攻击与防御实战
本文深入剖析了XSS(跨站脚本攻击)的原理与防御措施。XSS通过注入恶意脚本危害用户,主要分为反射型、存储型和DOM型三种类型。攻击者利用输入点、缺乏安全处理和输出点等条件实施攻击。防御策略包括对输出进行编码/转义、使用内容安全策略(CSP)、输入验证与过滤以及安全的DOM操作。其中CSP作为白名单机制能有效遏制XSS攻击,是当前最推荐的防御手段。文章通过可复现案例演示了各类XSS攻击,并提供了从开发到部署的完整解决方案。
2025-11-16 15:25:29
1140
2
原创 网络安全 | 深入理解SQL注入的原理和防范
SQL注入是一种常见的Web安全漏洞,攻击者通过将恶意SQL代码插入应用程序查询字符串,欺骗服务器执行未授权操作。其核心原理在于程序未对用户输入与SQL代码进行明确区分,导致数据被当作代码执行。常见攻击方式包括认证绕过(如万能密码)、数据窃取(通过UNION查询)和盲注攻击。防范SQL注入的最有效方法是使用参数化查询(Prepared Statements),确保用户输入仅作为数据而非指令被执行。其他措施包括使用ORM框架、遵循最小权限原则以及输入验证。开发者应杜绝字符串拼接式SQL,构建多层防御体系以确保
2025-11-16 14:41:14
1001
原创 RocketMQ | 延迟消息syncSend方法源码深度分析
RocketMQ延迟消息功能详解:通过syncSend方法实现消息延迟投递,支持18个内置延迟级别(1s至2h)。核心流程包括参数校验、消息格式转换、延迟级别设置(通过setDelayTimeLevel)、消息发送及性能监控。异常处理机制完善,确保系统健壮性。实践应用中可根据业务类型(如订单超时、优惠券到期等)选择合适延迟级别,实现灵活的场景化消息延迟方案。
2025-10-30 09:21:20
311
原创 Java | Lombok @Builder排障指南:为什么 build 时默认值丢失?
摘要: Lombok的@Builder注解在链式构建对象时,默认会忽略类字段的初始值,导致未显式赋值的字段返回null或0。解决方法是为字段添加@Builder.Default注解,强制Builder使用类中定义的默认值。需注意避免与@NonNull或自定义构造器冲突,确保默认值逻辑生效。此方案能有效统一new和Builder创建对象时的默认值行为。(150字)
2025-10-22 16:58:46
520
原创 Java | 基于redis实现分布式批量设置各个数据中心的服务器配置方案设计和代码实践
在企业级应用系统中,经常需要对大量服务器进行配置的批量更新。传统的同步处理方式存在性能瓶颈和单点故障风险。本系统基于Redis实现分布式异步批量处理,支持大规模服务器的配置设置操作。
2025-10-19 21:47:15
481
原创 网络安全 | SSL/TLS 证书文件格式详解:PEM、CRT、CER、DER、PKI、PKCS12
本文深入解析了SSL/TLS证书的常见文件格式,包括PEM、CRT/CER、DER和PKCS12。PEM是Base64编码的标准格式,适用于Web服务器配置;CRT/CER作为证书文件,在Unix和Windows系统中通用;DER是二进制格式,主要用于Java和Windows系统;PKCS12则支持证书和私钥的安全打包。文章还提供了格式转换和安全管理的实用建议,帮助开发者和运维人员合理选择证书格式,确保系统安全性。通过OpenSSL工具示例,展示了证书查看、验证等关键操作。
2025-10-19 20:30:55
1609
原创 tcpump | 深入探索网络抓包工具
摘要: tcpdump 是类Unix系统下的命令行网络抓包工具,支持捕获和分析网络流量,适用于故障排查、安全分析等场景。常用命令包括:-i指定网卡、-w保存数据包、-c限制捕获数量,过滤表达式可精确筛选流量(如host、port)。典型应用包括检测TCP三次握手、分析ICMP攻击、监控特定主机流量等。通过案例解析,展示了其在网络诊断、协议调试中的实用价值,是网络管理和安全分析的必备工具。
2025-09-14 21:46:09
1337
原创 Java | 掌握 Java 8 四大函数式接口:Consumer、Supplier、Predicate、Function
Java 8函数式编程四大核心接口详解 摘要:Java 8引入的函数式编程特性中,java.util.function包提供了四大核心接口:Consumer(消费型,接收参数无返回值)、Supplier(供给型,无参数返回结果)、Predicate(断言型,接收参数返回布尔值)和Function(函数型,接收参数返回结果)。本文详细解析了各接口的源码结构、使用方法和典型应用场景,如Consumer用于日志打印和集合遍历,Supplier实现延迟计算,Predicate进行数据过滤,Function处理类型转
2025-09-14 10:47:31
1203
原创 SpringBoot | 越权和数据权限控制的一种实现方案
首先,我们需要定义一个自定义的注解,这个注解会包含操作类型(CRUD)、资产ID和资产名称作为入参。@Target(ElementType.METHOD) // 该注解作用于方法@Retention(RetentionPolicy.RUNTIME) // 运行时生效// 操作类型,默认为 READ// 资产 ID// 资产名称通过以上的实现,我们使用了自定义注解、切面编程和用户权限服务的组合来对方法进行权限控制,确保只读用户无法进行修改操作,同时判断其他用户是否有权限访问特定的资产。
2025-06-24 18:35:53
798
原创 Elasticsearch | 索引和模板字段管理:增加新字段的详细操作
摘要: 本文介绍了如何在Elasticsearch中为索引和模板添加新字段,以优化数据存储与检索效率。通过示例演示了两种场景:1) 更新模板(temp_demo_log)新增result字段,强调index_patterns和strict动态映射的作用;2) 使用_mapping API为现有索引(demo_log)动态扩展字段,并说明字段类型不可修改的限制。还提供了验证方法和典型应用场景(如日志分析与电商数据),帮助开发者灵活管理Elasticsearch数据结构。关键操作包括模板更新、映射API调用及字
2025-06-24 14:19:09
1563
原创 IDEA | 提升效率的秘籍:macOS 与 IntelliJ IDEA 必备快捷键
本文介绍了macOS系统和IntelliJ IDEA中最实用的快捷键组合。macOS部分包括基础操作(如复制粘贴)、窗口管理和文本编辑快捷键;IntelliJ IDEA部分涵盖代码编辑、项目导航、调试运行和代码分析等开发场景。最后建议将系统快捷键与开发工具快捷键结合使用,如通过Command+Tab切换应用,Command+N新建文件等,显著提升开发效率。掌握这些快捷键可以避免频繁切换鼠标,让日常开发更加流畅高效。
2025-06-22 17:26:55
1170
原创 Spring | JDK 动态代理与 CGLIB 代理:原理、区别与实战对比
本文对比了Java中两种动态代理技术——JDK动态代理和CGLIB代理。JDK动态代理基于反射机制,要求目标类必须实现接口,使用Proxy类和InvocationHandler创建代理。CGLIB通过字节码生成目标类的子类,无需接口但无法代理final类,使用Enhancer和MethodInterceptor实现。性能上,JDK代理初始化快,适合方法调用少的场景;CGLIB调用性能更好,适合方法调用多的情况。建议根据实际需求选择:有接口优先用JDK代理,无接口或需代理非接口方法则用CGLIB。
2025-06-11 14:09:28
904
原创 Spring | 深入解析 Spring AOP 中的AopProxyUtils.ultimateTargetClass()解决代理对象注解获取问题
摘要本文探讨了Spring AOP代理对象无法获取目标类注解的问题及解决方案。当使用JDK动态代理或CGLIB代理时,直接通过代理对象获取类注解可能失效。通过分析问题现象,文章提出使用AopProxyUtils.ultimateTargetClass()方法穿透代理层,获取最终目标类类对象,从而正确读取类级别注解。该方法通过递归检查代理链实现目标类定位,并结合源码分析其实现原理。实测验证该方案可有效解决代理场景下的注解获取问题,为Spring AOP开发提供了实用技巧。
2025-06-11 14:03:26
1327
原创 RocketMQ | mqadmin命令增删改查topic
本文介绍了RocketMQ常用的mqadmin命令操作,包括创建/删除Topic、查询Topic信息、消费进度、队列信息、订阅关系等。详细列出了12种常用命令的语法格式及参数说明,其中updateTopic用于创建Topic,deleteTopic用于删除Topic,topicRoute等命令用于查询Topic各类信息。每个命令都需指定NameServer地址,部分命令还需集群名称、Topic名称等参数。这些命令涵盖了Topic管理的核心功能,如消息查询(按ID/key)、消费组/生产者信息查看等,为Roc
2025-06-11 11:42:51
1622
原创 Elasticsearch | 如何将修改已有的索引字段类型并迁移数据
摘要在Elasticsearch中修改已有字段类型(如将TEXT改为DATE)需通过创建新索引实现。步骤如下:1) 新建索引并定义正确字段类型;2) 用_reindex迁移数据;3) 删除旧索引并重命名新索引;4) 设置别名确保平滑过渡。该方法避免了直接修改字段类型的限制,同时保持应用兼容性。适用于字段类型定义错误的场景,如将时间戳从文本类型修正为日期类型。
2025-06-03 09:09:52
955
史上最全的Java核心技术总结.pdf
2020-03-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅