自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

佩奇的技术笔记

这里是技术分享、面试题分享、Java技术栈分享

  • 博客(169)
  • 收藏
  • 关注

原创 通过RAG构建内容推荐系统

RAG 内容推荐 = 语义检索 + 可信生成它把“推荐”从黑盒变成可解释、可验证、可更新的智能服务,特别适合需要透明度、专业性、实时性的场景(如电商、教育、医疗、媒体)。

2025-12-08 23:34:51 999

原创 系统设计面试怎么准备?高级程序员必学!

在深入讨论了核心瓶颈和解决方案后,最后一步是进行收尾工作,让整个设计更趋完善,并展示你的前瞻性。如何知道系统是否健康?需要监控哪些指标(QPS、延迟、错误率)?日志如何收集、存储和查询?(如 ELK 栈)如何实现平滑发布和回滚?(如蓝绿部署、金丝雀发布)如何防止DDoS攻击?如何保证用户数据安全?最后,对你的设计做一个简洁的总结。回顾你为了满足第一步中确定的需求,都做出了哪些关键的设计决策,并说明这些决策如何共同支撑起了整个系统。你具备工程闭环思维。

2025-11-10 20:26:49 682

原创 Java后端工程师需要做什么工作,要有什么技能

Java 后端早已不是“写接口”这么简单,而是贯穿业务、架构、性能、云原生、成本、安全、团队协同的“全栈治理者”。

2025-11-04 16:10:08 996

原创 Java实现单例模式的方式(代码版-可收藏)

本文介绍了Java单例模式的三种实现方式:饿汉式、懒汉式(非线程安全、线程安全)和双重检查锁。饿汉式在类加载时就初始化实例,线程安全但可能浪费资源。懒汉式分为非线程安全版(存在并发问题)和线程安全版(使用synchronized方法)。双重检查锁通过volatile和同步块确保线程安全且高效。每种方式各有适用场景,开发者可根据需求选择不同实现。

2025-10-20 12:29:28 186

原创 第四章:函数新特性

ES6函数特性全面升级,显著提升了JavaScript的开发体验。主要包括:默认参数避免假值误判,剩余参数替代arguments对象,展开运算符简化数组/对象操作。箭头函数带来更简洁的语法和词法this绑定,解决了回调函数this丢失问题,但不适合构造函数等场景。此外,参数解构和实战案例展示了ES6函数的强大能力。这些改进使JavaScript函数从"灵活但混乱"变为"简洁且可控",是现代化开发的重要基础。

2025-10-11 20:51:51 449

原创 第三章:字符串增强与模板字符串

ES6对字符串处理进行了重大改进,主要包括模板字符串、多行字符串和新增方法。模板字符串(使用反引号``)支持变量插值(${})、多行文本和表达式计算,解决了传统拼接繁琐的问题。新增的字符串方法如includes()、startsWith()等简化了文本操作。标签模板功能允许自定义处理模板内容。这些改进使字符串处理更高效、优雅,特别适合HTML模板生成等场景。注意防范XSS风险,确保用户输入安全。

2025-10-10 19:47:48 942

原创 第二章:变量与作用域革命 —— let 与 const

ES6引入了let和const替代var,解决了变量提升和块级作用域问题。let仅在块级作用域内有效,避免了变量污染;const声明常量(但对象属性可修改)。最佳实践是默认使用const,需要重新赋值时用let。let在循环中能避免闭包陷阱,使作用域更安全。与var相比,let和const让JS作用域体系更接近主流语言,是编程思想的进化。建议在项目中全面替换var,提升代码可维护性。

2025-10-09 20:09:18 497

原创 第一章:走进 ES6

ES6:现代JavaScript的里程碑更新 ES6(ECMAScript 2015)是JavaScript语言的重大升级,解决了ES5的诸多痛点:模块化缺失、变量作用域问题、回调地狱等。随着前端工程化和Node.js的兴起,ES6通过let/const、箭头函数、类、Promise等特性,使代码更简洁强大。目前主流浏览器和Node.js均已原生支持ES6,开发者可通过type="module"直接在浏览器中使用模块功能。这些改进让JavaScript更适合现代应用开发,显著提升了开发效

2025-09-15 11:45:12 343

原创 什么是 DNSSEC?

本文全面剖析了现代消息生态系统的关键要素。在编程语言层面,Java、Scala和Erlang各具优势,分别适用于企业级应用、高并发系统和实时通信场景。核心技术涵盖网络通信、序列化、一致性协议等,确保系统高效可靠。主流消息队列如Kafka、RabbitMQ等针对不同需求设计,支持大数据处理、复杂路由等场景。同时遵循JMS、AMQP等标准协议实现互操作性。这些技术广泛应用于微服务、IoT、流计算等领域,为构建高效分布式系统提供支撑。掌握消息生态系统对现代架构设计至关重要。

2025-09-02 20:35:00 486

原创 消息生态系统全景解析:技术架构、核心组件与应用场景

本文全面剖析了现代消息生态系统的关键要素。在编程语言层面,Java、Scala和Erlang各具优势,分别适用于企业级应用、高并发系统和实时通信场景。核心技术涵盖网络通信、序列化、一致性协议等,确保系统高效可靠。主流消息队列如Kafka、RabbitMQ等针对不同需求设计,支持大数据处理、复杂路由等场景。同时遵循JMS、AMQP等标准协议实现互操作性。这些技术广泛应用于微服务、IoT、流计算等领域,为构建高效分布式系统提供支撑。掌握消息生态系统对现代架构设计至关重要。

2025-08-10 22:24:31 542

原创 我劝你也试试,Claude Code接入Kimi K2 模型教程,不用担心封号,可平替85%

AI编程现在是越来越火,从生成整个网页的工具类似v0.dev的网站到Agent智能化的IDE编辑器(Cursor、Windsurf、Trae等),只要会上网能说讲明白需求,普通人也能实现自己的产品。当然需要好的工具以及对AI编程的基本认识,不过比之前降低了很多的难度。

2025-07-22 17:54:21 1160

原创 从明文到Argon2:密码存储技术的演进之路

网络安全技术不断演进:从互联网初期的明文密码存储,到单向哈希加密(MD5/SHA),再到加盐机制抵御彩虹表攻击。随着硬件算力提升,自适应哈希函数(bcrypt/PBKDF2/scrypt/Argon2)成为新标准,通过可控的"慢哈希"有效抵抗暴力破解。现代系统还结合短期令牌(JWT/OAuth)实现高效验证。开发者应持续采用最新安全实践,在性能与安全间寻求平衡,构建更可靠的数字防护体系。

2025-07-01 22:42:20 309

原创 Git Worktree:高效开发的秘密武器

Git Worktree 是 Git 2.5 引入的强大功能,允许开发者在同一仓库创建多个独立工作树,每个关联不同分支。与传统分支切换相比,它解决了频繁切换导致的操作冲突、效率低下等问题,同时节省磁盘空间。核心命令包括添加(add)、列出(list)、删除(remove)和锁定(lock)工作树。实际应用中,它特别适合并行开发多个功能、处理紧急修复和文档代码同步等场景。虽然共享同一.git目录,但需避免跨工作树修改同一文件,并定期清理闲置工作树。相比多仓库克隆和Git Stash,Git Worktree提

2025-06-22 18:29:12 1826

原创 LVS vs Nginx 负载均衡对比:全面解析

LVS与Nginx负载均衡对比摘要: LVS是四层(TCP/UDP)负载均衡器,基于IP/端口转发,性能极高,适合高并发TCP/UDP服务(如游戏、数据库),支持NAT、DR、TUN三种模式。Nginx为七层(HTTP)负载均衡器,解析HTTP协议,支持灵活路由(URL/Header)、动静分离和SSL终止,适合Web应用和API网关。LVS优势在于高性能和简单配置,Nginx胜在灵活性和应用层功能。实际部署中可组合使用,LVS处理底层流量,Nginx管理HTTP逻辑,兼顾性能与功能。选择时需根据协议类型(

2025-06-20 16:19:21 553

原创 FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6+。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的 FastAPI 应用的各个步骤。在开始之前,请确保你已经安装了 Python 3.7+(推荐 3.7+ 以获得更好的类型提示支持)和一个代码编辑器(如 VS Code 或 PyCharm)。你会看到交互式的 API 文档界面,可以直接在里面测试你的 API 端点。文件所在的目录,并确保虚拟环境已激活。

2025-06-10 21:52:18 1099

原创 Python入门手册:常用的Python标准库

Python常用的标准库,json、re正则、sys等

2025-06-10 21:41:54 392

原创 Python入门手册:异常处理

本文介绍了Python异常处理的关键知识点:首先解释了异常的概念和分类,包括内置异常(如ValueError、TypeError)和自定义异常;然后详细讲解了try-except、else和finally等异常捕获处理机制;接着说明如何定义和使用自定义异常;最后提出了异常处理最佳实践,包括针对性捕获异常、日志记录、资源清理和使用上下文管理器。这些内容帮助开发者编写更健壮、可靠的Python程序。

2025-06-07 23:47:57 1331

原创 Python入门手册:文件操作

Python文件操作是编程中的重要技能,本文介绍了文件打开与关闭、读写操作、指针定位及注意事项。通过open()函数打开文件,使用with语句自动关闭,避免资源泄漏。文件读取可用read()、readline()等方法,写入则用write()和writelines()。seek()和tell()可控制文件指针位置。文中还强调了文件路径处理、存在性检查和异常处理,确保程序稳健性。掌握这些技巧能够高效安全地完成文件操作任务。

2025-06-05 15:11:41 465

原创 盘点常用的NoSQL数据库类型

NoSQL数据库作为关系型数据库的重要补充,针对不同场景需求分为四大类型:1)K-V存储(如Redis),高效处理复杂数据结构但事务支持有限;2)文档数据库(如MongoDB),提供灵活的无schema存储;3)列式数据库(如HBase),优化大数据分析的I/O效率;4)全文搜索引擎(如Elasticsearch),实现毫秒级文本检索。各类NoSQL数据库分别解决了关系型数据库在数据结构、扩展性、大数据处理和全文搜索方面的短板,实际应用中需根据业务需求选择合适的数据库组合(Not Only SQL),构建高

2025-06-04 18:07:45 872

原创 从Java的JDK源码中学设计模式之装饰器模式

装饰器模式是一种结构型设计模式,通过动态包装对象来扩展功能,而无需修改原有结构。其核心是保持相同接口,通过组合方式增强对象功能,避免类爆炸问题。Java IO包是典型应用,如BufferedInputStream装饰FileInputStream。该模式通过FilterInputStream等抽象层实现功能叠加,相比继承更具灵活性,支持运行时动态扩展。优势在于符合开闭原则、职责明确,但过度使用会增加复杂性。适用于需要透明添加功能、避免继承膨胀的场景,体现了"组合优于继承"的设计思想。

2025-06-03 14:58:45 1693

原创 WebSocket与Reactor模式:构建实时交互应用

本文探讨了WebSocket协议和Reactor模式在现代网络应用中的应用。WebSocket作为实时双向通信解决方案,具有持久连接、全双工通信等特性,文中提供了基于Java NIO的WebSocket服务器实现代码,包括握手处理、数据帧解析等核心功能。通过Selector和非阻塞I/O技术,该实现能够有效管理多客户端连接,为构建高性能实时应用提供了技术基础。

2025-06-02 21:38:07 1318

原创 深入Java NIO:构建高性能网络应用

Java NIO技术提升了网络应用性能,其核心包括Channel、Buffer和Selector三大组件。本文展示了NIO服务器实现,通过单线程处理多客户端连接,代码示例详细说明了服务器如何监听、接受和处理请求。同时提供了NIO客户端实现,通过Selector监听连接事件并实现异步通信。这种非阻塞I/O模型显著提高了高并发场景下的处理效率,为Java网络编程提供了更优解决方案。

2025-06-01 19:55:02 542

原创 Java网络编程基础:从阻塞式I/O到线程池模型

本文介绍了Java网络编程中的两种I/O模型:阻塞式I/O和线程池模型。阻塞式I/O采用一连接一线程的方式,实现简单但资源消耗大,不适合高并发。线程池模型通过复用有限线程处理多连接,控制线程数量并提高资源利用率,适合中等并发场景,但仍存在I/O阻塞问题。文章通过代码示例展示了两种模型的实现方式,并分析了各自的优缺点,为后续学习更高性能的NIO和Reactor模式奠定了基础。

2025-06-01 19:54:20 592

原创 Python入门手册:类和对象

本文介绍了Python面向对象编程的核心概念,重点讲解了类和对象的定义与使用。主要内容包括:1)类作为对象模板的概念和对象的实例化过程;2)通过Car类示例展示属性和方法的使用;3)继承和多态的实现方式;4)封装和访问控制机制(公有、受保护、私有)。文章以通俗易懂的方式呈现了OOP的基本特性,包括代码复用、灵活性和数据保护等优势,为读者理解Python面向对象编程提供了清晰指引。

2025-06-01 16:12:33 1117

原创 Python入门手册:模块和包的导入与使用

本文介绍了Python中模块和包的导入与使用方法。模块是包含Python代码的.py文件,可通过import语句导入;包是包含多个模块的目录,需包含__init__.py文件。文章详细讲解了导入整个模块、特定函数、使用别名等方法,并介绍了标准库和第三方库的使用。合理使用模块和包能提高代码的可维护性和复用性。掌握这些知识有助于更好地组织Python项目代码。

2025-05-28 19:54:31 744

原创 Python入门手册:函数的定义和使用

本文介绍了Python中函数的概念和使用方法。函数通过def关键字定义,可以封装代码块提高可读性和复用性。主要内容包括:1) 函数的定义语法和返回值;2) 函数的调用方式;3) 参数类型(位置参数、关键字参数、默认参数、可变参数);4) 文档字符串的使用;5) 高级特性如闭包和装饰器。函数是Python编程的核心概念,掌握其使用方法有助于编写更高效、可维护的代码。

2025-05-27 18:56:21 789

原创 WebSocket学习总结

WebSocket是现代Web应用中实现实时通信的首选技术,它通过持久连接和全双工通信,解决了HTTP协议在实时性方面的局限,广泛应用于需要即时数据交互的场景。它突破了传统HTTP协议的限制(请求-响应模式),特别适合需要实时通信的场景(如聊天、实时数据推送、游戏等)。握手成功后,连接转为TCP通道,双方通过**帧(Frame)**格式交换数据,无需HTTP头部,开销极小。连接建立后(通过HTTP握手),会保持打开状态,直到任意一方主动关闭,避免了频繁建立连接的开销。发送和接收数据,无需等待对方的响应。

2025-05-27 16:35:56 1056

原创 Python入门手册:循环

本文介绍了Python中两种主要的循环结构:for循环和while循环。for循环用于遍历可迭代对象(如列表、字符串等),配合range()函数可控制循环次数;while循环则在满足条件时重复执行代码块。文章还讲解了循环控制语句break和continue的使用方法,以及循环中的else子句和嵌套循环的应用场景。通过掌握这些循环结构和控制语句,可以更高效地处理编程中的重复任务。文章提供了丰富的代码示例帮助理解各种循环的用法。

2025-05-26 23:30:34 418

原创 Python入门手册:条件判断

本文详细介绍了Python中的条件判断语句,包括if、elif和else的基本语法和使用方法。通过示例代码展示了如何检查数值类型、使用逻辑运算符组合条件,以及嵌套条件判断的应用。此外,还介绍了简洁的条件表达式和三种逻辑运算符(and、or、not)的用法。这些功能使程序能够根据不同条件执行相应操作,是控制程序流程的重要工具。文章旨在帮助读者全面掌握Python条件判断的编写技巧和应用场景。

2025-05-25 21:19:52 848

原创 Python入门手册:Python中的数据结构类型

Python提供了四种主要数据结构:列表(有序可变)、元组(有序不可变)、集合(无序不重复)和字典(键值对)。列表适合存储可修改元素序列,元组适合固定数据,集合用于数学运算,字典便于键值检索。每种结构都有特定操作方法,如列表的增删改查、元组的切片、集合的并交差运算、字典的键值操作。掌握这些数据结构能有效提升Python数据处理效率,需根据场景选择合适类型。

2025-05-24 23:35:59 1002

原创 Python入门手册:Python基础语法

Python基础语法入门指南:本文系统介绍了Python编程语言的核心语法,涵盖变量定义(无需显式声明类型)、基本数据类型(int/float/str/bool)及类型推断机制。详细讲解运算符体系,包括算术、比较、逻辑运算符,特别补充了位运算符的应用。控制流语句部分演示了if条件判断、for/while循环的使用方法。还包含函数定义与调用、模块导入等组织代码的关键技巧。通过具体代码示例(如变量赋值、数学运算、函数封装等),帮助初学者快速掌握Python编程基础,为后续学习打下坚实基础。文中所有示例均可直接运

2025-05-23 22:51:30 2086

原创 AI编程:小白如何通过Git命令来管理代码

文章摘要:本文为AI编程初学者介绍了使用Git进行代码管理的基础操作指南。主要内容包括:1) Git的安装与基础配置;2) 代码管理核心流程:初始化仓库、添加暂存区、提交代码、查看状态与历史记录;3) 分支管理:创建/切换/合并分支;4) 版本控制:文件还原与版本回退;5) 远程仓库推送和常见问题解决建议。文章以通俗易懂的语言和实例演示,帮助零基础用户快速掌握Git基础操作,强调版本控制的重要性及团队协作价值,适合AI项目开发初学者学习使用。

2025-05-23 22:21:32 1496

原创 Python入门手册:正则表达式的学习

正则表达式作为文本处理的"魔法咒语",其核心概念和语法可概括为:1)字符类(如\d匹配数字、\w匹配字母数字下划线);2)边界匹配(^和$匹配开头结尾);3)量词(* + ? {n}控制匹配次数);4)分组捕获(()和|实现分组或匹配)。Python通过re模块提供search()、findall()、sub()等函数支持正则操作,典型应用包括提取网页链接(匹配href属性值)和验证手机号格式(如^1[3-9]\d{9}$)。掌握这些基础语法和场景应用,即可高效处理各类文本匹配任务。&l

2025-05-21 14:59:18 1025

原创 Python入门手册:Python简介,什么是Python

Python是一种由Guido van Rossum于1989年开发的高级编程语言,以其简洁的语法和强大的功能而闻名。Python的设计哲学强调代码的可读性和简洁性,使其成为初学者的理想选择。Python广泛应用于Web开发(如Django和Flask框架)、数据分析与机器学习(如Pandas、NumPy、TensorFlow库)、自动化脚本、网络爬虫(如Requests和BeautifulSoup库)以及游戏开发(如Pygame库)。Python的优点是易读易写、跨平台兼容性和丰富的库支持,但其运行速度较

2025-05-20 22:55:39 1427

原创 为什么编程语言中变量名不能以数字开头?

在编程语言中,变量名、函数名等标识符不能以数字开头的规则,是经过多方面权衡的结果。首先,词法分析器在解析代码时,若允许数字开头的标识符,将增加解析的复杂性和降低效率。其次,这种规则避免了语法歧义,如数字开头的标识符可能与数学表达式或特殊数字表示形式混淆。此外,从代码可读性和编程习惯的角度来看,字母开头的标识符更符合人类的阅读习惯,且编程社区已形成相关命名规范。这一规则也源于早期编程语言的设计,并被现代语言广泛继承。尽管存在一些特殊场景下的例外,但总体上,这一规则在技术逻辑和实际应用中具有其合理性和必要性。

2025-05-19 09:18:37 967

原创 Java学习手册:服务熔断与降级

在微服务架构中,服务熔断与降级是确保系统稳定性和可用性的重要机制。服务熔断通过自动断开故障服务的调用,防止故障扩散,快速释放资源,提升系统响应速度。服务降级则在系统压力或故障时,主动降低非核心服务的复杂性,保障核心服务的正常运行,优化系统性能,提升用户体验。Hystrix 是实现这些机制的开源工具,通过线程池隔离、熔断机制和降级逻辑,有效管理服务调用。其配置与使用包括添加依赖、启用Hystrix、创建Hystrix命令以及在实际业务中调用命令。Hystrix还提供断路器状态、降级策略和监控仪表盘等高级特性,

2025-05-18 19:33:03 1298

原创 域名配置Lets Encrypt证书过程笔记

在互联网通信中,配置SSL/TLS证书至关重要,主要原因包括数据加密、身份认证、SEO优化、用户体验提升和合规要求。未配置证书的网站会被浏览器标记为“不安全”,影响用户信任和流量。Let's Encrypt是免费、自动化且开放的证书颁发机构,提供高效的证书管理服务。通过Certbot工具,可以轻松为Nginx服务器配置Let's Encrypt证书,并实现自动续期。成功配置后,网站将显示安全标识,自动重定向至HTTPS,提升加载速度和用户信任度,同时符合搜索引擎优化要求,提升搜索排名。配置Let's Enc

2025-05-17 11:06:21 779

原创 CentOS系统中升级Python 3.12.2版本

在CentOS系统中升级Python版本是常见的需求,尤其是在需要使用新功能或满足软件依赖时。升级前需检查当前Python版本、备份数据,并确认最低版本要求。接着,从Python官网下载最新稳定版本的源码,解压后安装必要的依赖库。然后,进入源码目录,配置安装路径并编译安装,建议使用make altinstall以避免覆盖系统默认的Python命令。安装完成后,删除旧的软链接并创建新的指向新安装的Python和pip。最后,验证安装并解决可能遇到的问题,如模块缺失或版本冲突。升级过程中需注意保留系统默认Pyt

2025-05-16 14:29:44 1943

原创 前端学习:align-items 和 justify-content 概念和区别

align-items和justify-content是CSS布局中用于控制元素对齐的重要属性,分别作用于交叉轴和主轴。align-items用于调整元素在交叉轴上的对齐方式,常见值包括stretch、flex-start、flex-end、center和baseline。justify-content则用于控制元素在主轴上的分布,常见值有flex-start、flex-end、center、space-between、space-around和space-evenly。两者的核心区别在于作用方向不同,al

2025-05-15 18:02:03 1725

原创 AI编程:使用Trae + Claude生成原型图,提示词分享

最近在学习AI编程时,我根据分享的提示词生成了两个APP原型图。第一个原型图是基于B站@探索者-子默的视频生成的AI改写工具,第二个则是通过修改提示词生成的视频解析链接工具。这两个原型图效果良好,稍作调整即可用于产品开发,为独立开发者提供了便利。生成过程中使用了FontAwesome图标库、TailwindCSS和HTML等组件。提示词详细描述了产品需求、页面功能模块、设计与实现要求以及效果增强建议,确保原型具备实际开发指导意义。

2025-05-14 23:00:51 2454

空空如也

空空如也

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

TA关注的人

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