- 博客(45)
- 收藏
- 关注
原创 Python开发:深入理解 Python 字节码缓存文件
阶段一:编译阶段Python 源代码(.py文件)被编译成字节码字节码是一种介于源代码和机器码之间的中间语言这种编译是自动完成的,对开发者透明阶段二:执行阶段Python 虚拟机(PVM)解释执行字节码逐行读取并运行程序逻辑源代码 (.py) → 编译 → 字节码 (.pyc) → 解释执行 → 程序输出本质.pyc文件是 Python 源代码编译后的字节码缓存作用:加速模块导入和程序启动验证:Python 自动通过时间戳验证缓存有效性更新:修改源代码后,Python 会自动重新编译。
2026-02-08 11:51:17
527
原创 【Agent学习笔记3:使用Python开发简单MCP服务】
本文介绍了如何使用Python开发MCP(Model Context Protocol)服务,实现大语言模型与外部工具的交互。主要内容包括:MCP协议概述及其标准化、安全性优势;环境准备与FastMCP框架安装;通过装饰器定义MCP工具(文件写入和天气查询示例);服务启动配置(支持SSE和STDIO两种传输方式);环境变量安全管理;以及扩展建议(添加新工具和参数验证)。文章提供了完整代码示例,帮助开发者快速构建安全的MCP服务。
2026-02-01 17:37:03
629
原创 【Agent学习笔记2:深入理解Function Calling技术:从原理到实践】
Function Calling技术扩展了AI模型的能力边界,使其能够调用外部函数、访问实时数据并执行特定任务。本文以阿里云DashScope API为例,详细讲解了该技术的原理、实现和应用。核心内容包括:1)系统提示词设计引导AI行为;2)JSON格式函数定义声明可用函数;3)实际函数实现执行具体操作;4)API请求构建与结果处理流程。通过天气查询和文件写入两个实例,展示了如何让AI模型具备实时信息获取和操作执行能力,使其从"知识库"转变为真正的"智能助手"。
2026-02-01 11:45:03
770
原创 【Agent学习笔记1:Python调用Function Calling,阿里云API函数调用与DeepSeek API对比分析】
本文对比分析了阿里云API和DeepSeek API的函数调用功能。两者在函数定义格式上完全一致,均采用OpenAI标准结构,包含函数名称、描述和参数定义。阿里云API通过tools参数传递函数定义,响应中包含tool_calls字段指示函数调用。实际使用时需手动执行函数并返回结果给模型。主要差异在于API端点地址不同:阿里云使用DashScope服务端点,而DeepSeek有其专用地址。整体实现逻辑相似,开发者可根据服务偏好选择。
2026-02-01 11:22:18
573
1
原创 【Node.js 安装报错解决方案:解决“A later version of Node.js is already installed”问题】
处理 “A later version of Node.js is already installed” 错误的关键在于彻底清理现有安装,然后重新安装所需版本。对于长期开发工作,推荐使用版本管理工具如 nvm 或 nvm-windows,这样可以避免版本冲突,轻松切换不同项目所需的环境。
2026-01-30 00:26:40
644
原创 【LibGDX中的setAutoScale方法】
类相关,用于控制字体在缩放时是否自动调整其像素大小以保持清晰度。缩放控制:除了自动缩放,还可以使用。方法调整,而多行文本的绘制则使用。方法启用或禁用自动缩放功能。方法手动设置字体的缩放比例。颜色与绘制:字体颜色可通过。
2026-01-19 16:17:30
213
原创 解决PyCharm配置Conda虚拟环境报错lateinit property envs has not been initialized的问题
摘要:本文详细解决PyCharm2025配置Conda环境时出现的lateinit property envs has not been initialized错误。通过验证Conda安装状态、检查版本兼容性、正确配置PyCharm中的Conda环境路径(推荐使用_conda.exe而非conda.bat)以及检查系统环境变量,逐步排查问题根源。特别提示从命令行验证开始排查,并提供Windows环境变量配置建议。若问题持续,建议参考JetBrains官方文档或社区论坛获取进一步帮助。(149字)
2026-01-16 00:11:07
3777
4
原创 踩坑记录:重新安装Anaconda失败,进度条一半显示:Failed to link extracted packages to D:\Anaconda\anaconda3
摘要 本文记录了Windows系统重装Anaconda时遇到"Failed to link extracted packages"错误的解决方法。主要问题源于权限不足、残留文件或防病毒软件干扰。解决方案包括彻底删除旧安装目录和C:\Users\用户名.condarc配置文件。关键经验是重装前必须完全清理旧文件,特别注意隐藏的.condarc配置文件。文中还提供了Anaconda官方文档和镜像源等参考资源。该问题常见于Anaconda重装场景,通过完整清理可有效避免安装失败。
2026-01-15 23:35:51
399
原创 【安装与配置Anaconda步骤,包含卸载重装】
Anaconda卸载与安装指南 卸载步骤: 使用官方卸载工具并重启电脑 手动删除残留文件夹(如ProgramData\Anaconda3等) 清除环境变量中的Anaconda相关路径 安装步骤: 从官网或清华镜像下载安装包 安装时勾选"添加到PATH"选项 验证安装后建议配置国内镜像源 推荐为每个项目创建独立虚拟环境 核心要点:彻底清理残留文件、正确配置环境变量、使用镜像加速下载。
2026-01-15 23:09:03
524
原创 高效并行测试:在IDEA中同时运行多个参数化测试配置(idea2019如何在同一个项目运行多次)
本文介绍了在IntelliJ IDEA中实现多参数并行测试的高效方法。通过改造测试类使其支持从系统属性读取参数,创建多个JUnit运行配置并设置不同的VM选项参数,最后使用IDEA的复合配置功能实现并行执行。这种方法特别适用于需要测试多种参数组合的场景,如游戏数学模型验证,相比传统手动修改测试的方式,能显著提升测试效率。文章还提供了完整代码示例和配置步骤,并建议对于复杂参数可以使用JSON格式的环境变量传递。
2026-01-12 14:09:20
681
原创 Bus Hound——强大的总线分析工具,抓USB转串口数据包如何使用
它能够捕获和显示USB总线上的数据传输细节,帮助开发者调试USB设备、分析通信问题。在嵌入式系统和USB设备开发过程中,数据通信的准确分析是至关重要的。Bus Hound 的核心界面通常包含几个关键按钮,例如。为了数据清晰,建议取消勾选其他不相关的设备选项。正是一款在Windows环境下广受欢迎的。按钮,会弹出设备选择界面。
2025-11-03 17:29:11
323
原创 bit、byte、位、字节、汉字的关系
文章摘要:本文系统讲解了计算机数据存储的基本单位bit和byte,以及字符编码的发展与应用。1bit是最小二进制单位,8bit组成1byte作为计算机最小寻址单元。ASCII用1字节表示英文字符,而汉字因数量庞大需要多字节编码:GBK用2字节,UTF-8采用变长编码(汉字通常3字节)。文章对比了不同编码方案,强调UTF-8作为现代跨平台标准的优势,并给出开发实践建议:需明确指定编码、区分字符长度与存储大小、合理设置数据库字段。理解这些概念对处理字符编码问题至关重要。
2025-11-03 10:18:14
977
原创 JDK 完全卸载与安装配置指南:从清理到环境搭建
本文提供了完整的JDK卸载与安装配置指南,重点介绍了彻底卸载旧版本JDK的必要性和方法。内容包括:通过控制面板卸载、手动清理残留文件和注册表、环境变量清理;JDK版本选择建议、详细安装步骤和环境变量配置;以及多版本管理方案和常见问题解决方法。通过遵循本文流程,开发者可以确保Java开发环境的纯净和稳定,避免版本冲突等问题,为开发工作打好基础。
2025-10-22 21:42:19
1001
原创 Windows文件搜索神器:Everything
Windows文件搜索神器Everything是一款颠覆性工具,能在秒级内完成全盘搜索。它直接读取NTFS系统的USN日志实现实时索引,120,000个文件仅需1秒完成索引。核心优势包括:闪电搜索速度、极低资源占用(14MB内存)、实时文件系统监控和完全免费无广告。支持高级搜索语法如通配符、路径限定、大小/日期过滤和中文拼音搜索,还提供HTTP服务器和批量重命名功能。虽然主要支持NTFS格式,但这款轻量级工具(安装包不到2MB)能显著提升文件管理效率,是Windows用户必备的生产力利器。
2025-10-22 14:32:31
872
原创 【LibGDX】Spine动画中文路径异常java.lang.RuntimeException: Region not found in atlas 深度解析
Spine动画中文路径异常解析:当使用含中文路径的Spine动画时,会出现"Region not found in atlas"错误。根本原因是字符编码不一致、路径解析差异和系统兼容性问题。推荐解决方案是统一使用英文命名规范,避免特殊字符。同时建议建立资源命名规范(如全小写、下划线分隔),并提供了完整的故障排查流程图表。预防胜于治疗,良好的资源管理规范能显著提升项目稳定性和可维护性。
2025-10-14 10:04:45
855
原创 游戏开发中的资源加载策略:懒加载 vs 预加载深度解析
游戏资源加载策略对比分析 本文深入探讨了游戏开发中的两种核心资源加载策略: 懒加载采用按需加载方式,特别适合资源使用频率不确定、内存敏感的应用场景,能有效减少初始内存占用,但可能导致运行时性能波动。典型实现包括使用缓存机制和延迟初始化技术。 预加载策略在启动阶段完成资源加载,用较长的初始化时间换取运行时流畅体验,适合性能要求高且资源使用可预测的游戏场景。实现时通常建立资源池并提前加载所有可能需要的资源。 混合策略结合两者优势,根据使用频率智能决定加载时机,既保证高频资源的即时可用,又避免低频资源占用过多内存
2025-10-13 17:52:31
980
原创 LibGDX游戏开发性能优化实战:对象池模式在LibGDX中的应用
摘要:本文介绍了在LibGDX游戏开发中使用对象池模式优化支付线动画性能的实践。针对频繁创建Spine动画实例导致的卡顿问题,提出了预加载和懒加载两种对象池实现方案。预加载方案启动慢但运行时性能最优,懒加载方案启动快但首次播放可能有卡顿。文章提供了完整实现代码,对比了不同方案的性能差异,并给出实践建议:根据使用频率选择方案、合理管理对象状态、监控内存使用和适时清理资源。对象池模式能有效减少GC压力,提升游戏流畅度。
2025-10-13 17:45:31
386
原创 解决PowerShell脚本无法加载问题:无法加载文件 E:...\Check-DuplicateFiles.ps1,深入理解执行策略
摘要:本文详细解析PowerShell脚本无法运行的常见错误,深入讲解执行策略机制及其安全设计理念。提供四种解决方案:临时绕过策略(推荐)、修改当前用户策略、命令行直接运行及查看/恢复策略。针对不同开发环境(个人/企业/生产/CI)给出最佳实践建议,并介绍企业级脚本签名方案。强调在开发便利性与系统安全性间取得平衡的重要性,帮助开发者既解决问题又理解底层安全机制。
2025-10-11 19:41:49
871
原创 PowerShell 递归目录文件名冲突检查脚本(不区分大小写)
PowerShell递归检查文件名与目录名冲突 摘要:该PowerShell脚本用于检测文件系统中同一目录下文件名与目录名冲突的问题。脚本通过递归遍历指定路径,检查是否存在文件名(不含扩展名)与同级目录名相同的冲突情况,支持控制台输出详细冲突信息和CSV导出功能。主要特点包括: 递归检查所有子目录 区分"同级目录"和"跨子目录"两种冲突类型 提供冲突文件的详细信息(路径、大小、修改时间) 支持分组显示冲突结果 可选生成CSV报告 该脚本特别适合资源管理系统、游戏开发等
2025-10-11 16:41:33
494
原创 《LangChain入门指南》学习笔记2:第2章 LangChain入门指南
降低门槛:几行代码即可运行LLM程序内置组件:提供摘要链、问答链等,避免重复编码提示词工程:提供大量经过验证的提示词模板(如SQL查询模板)灵活部署:支持RAG、私有化部署、模型切换。
2025-10-06 12:23:05
629
原创 LangChain入门实践4:LLMChain创建第一个链快速入门
测试输出解析器继承基类创建自定义解析器实现parse方法处理LLM的原始输出使用字符串的split方法按逗号分隔转换为列表这是一个简单的解析器示例,实际应用中可能需要更复杂的逻辑通过本文的学习,我们成功创建了第一个完整的LangChain链,这是一个重要的里程碑。
2025-10-06 12:07:39
1206
原创 LangChain入门实践3:PromptTemplate提示词模板详解
通过本文的学习,我们对LangChain框架中的PromptTemplate提示词模板有了全面的理解。核心价值PromptTemplate是LangChain中构建高质量提示词的核心工具,能够将用户输入转化为结构化的提示文本通过模板化处理,提高了代码的可维护性和复用性主要模板类型基础PromptTemplate:适用于文本生成模型,支持简单的变量替换:专为聊天模型设计,支持多角色消息结构消息组件:SystemMessage、HumanMessage、AIMessage等用于构建复杂的对话场景。
2025-10-05 11:52:46
931
原创 LangChain实践2:编写取名程序,predict的小坑问题记录
经过环境配置,我们跑通了和LLM的链接,有了这些基础的设置,我们可以尝试使用LLM进行一次编程操作。由于predict在新版langchain里不支持,所以将predict替换为invoke()即可。
2025-09-30 11:22:41
178
原创 LangChain实践1:Python调用阿里百炼大模型,免费API
用您的百炼API Key代替YOUR_DASHSCOPE_API_KEY。注册认证大模型平台即可获得免费的API使用,详情如下链接。推荐使用CMD添加永久环境变量。通过下面代码调用模型。
2025-09-29 11:04:30
728
原创 【Java开发:Lambda表达式】
Lambda 表达式可以被认为是匿名函数(没有名称的函数)。它是一种可以传递的代码块,可以将行为作为参数传递给方法,使代码更简洁。Lambda 表达式让 Java 具备了函数式编程的能力,同时保持了面向对象编程的特性。Lambda 表达式是 Java 8 引入的一个重要特性,它极大地简化了代码编写,特别是在处理集合和实现函数式接口时。通过 Lambda 表达式和方法引用,Java 代码变得更加简洁、易读和易维护。
2025-09-23 11:24:39
1000
原创 【Java开发:Variable used in lambda expression should be final or effectively final】
优先使用effectively final变量:让代码更简洁,避免不必要的final关键字需要修改值时使用原子类等提供线程安全的操作复杂场景使用同步机制:当需要复杂操作时,使用或Lock考虑使用不可变对象:设计不可变对象可以避免许多并发问题使用函数式编程风格:利用map、reduce、filter等操作,避免修改外部状态。
2025-09-19 16:06:20
797
原创 【Java面试基础:从语法到面向对象概念解析总结】
《Java核心概念与实践指南》摘要:本文系统梳理Java编程核心知识,涵盖基础语法、OOP特性和开发实践。重点解析:1)数据类型与流程控制;2)面向对象四大特性(封装、继承、多态、抽象)及关键实现;3)集合框架与异常处理等核心API用法;4)开发规范与典型易错点。特别强调JVM跨平台机制和内存管理原理,并提供工具链推荐(IDEA/Maven/Git)。文章指出,掌握基础语法与OOP思想是进阶分布式架构和框架源码分析的前提,建议通过管理系统类项目实战巩固知识体系。学习路径建议从语法到JVM层层深入。
2025-09-17 17:59:16
336
原创 【vs code插件工具推荐:Markmap—— .md/markdown文件转思维导图】
摘要:Markmap是一款创新的VS Code插件,能够将Markdown文件实时转换为交互式思维导图。它支持完整Markdown语法(包括链接、代码块和数学公式),提供实时预览、节点展开/折叠和多格式导出功能。安装简单,只需在VS Code扩展市场搜索安装,使用时需将文件保存为.md格式。适用于知识管理、项目规划、演讲准备等多种场景,兼具Markdown的简洁性和思维导图的直观性。虽然需要遵循特定命名规则,但这款免费开源工具能显著提升笔记和工作效率。
2025-09-17 15:22:53
2568
原创 【Java开发:硬编码 vs 软编码】
本文探讨Java开发中硬编码的问题及优化方案。通过示例代码展示了多处使用硬编码数字(如5、4、20)带来的可读性差、维护困难等问题,提出使用类级常量替换的优化方法。进阶方案包括使用枚举和配置类管理常量,提高代码组织性和可维护性。文章比较了不同方法的优缺点,指出常量方式适合大多数业务场景,而配置类更适合大型项目。虽然硬编码在简单脚本或原型开发中可以接受,但在团队协作和长期项目中应避免。优化硬编码能显著提升代码质量,节省调试时间。
2025-09-16 17:35:27
444
原创 【Java开发:使用批处理脚本实现高效文件复制操作】
批处理脚本为文件复制操作提供了自动化解决方案,特别适合需要定期执行的复制任务。通过合理的错误处理和路径验证,可以大大提高文件操作的可靠性和效率。对于简单的文件复制,使用copy命令即可;对于需要复制整个目录结构的场景,xcopy是更好的选择;而对于大型或网络文件复制,可以考虑使用更强大的robocopy工具。具体通过WIN+R,cmd查看具体操作。
2025-09-16 13:58:37
525
原创 【Java异常:java.net.BindException: Address already in use: bind】
摘要: Java开发者常遇到的java.net.BindException: Address already in use: bind异常,表示目标端口已被占用。解决方法分三步:1) 确认冲突端口(如8080);2) 通过netstat -ano(Windows)或lsof -i(Linux/Mac)查找占用进程的PID;3) 选择终止该进程或修改应用端口(如Spring Boot的server.port配置)。此异常本质是系统防止端口冲突的保护机制,通过系统命令排查即可快速解决。
2025-09-01 17:28:02
913
原创 【Java异常:Exception in thread “main“ java.lang.ArithmeticException: / by zero 编程中除以0的异常处理探讨】
编程语言整数除以0浮点数除以0Java / C#抛出异常得到Infinity或NaNC/C++未定义行为(通常崩溃)得到Infinity或NaN(遵循IEEE 754)Python抛出异常得到inf或nanJavaScript得到Infinity(所有数字都是浮点数)得到Infinity或NaNGo抛出 panic(运行时恐慌)得到+Inf-InfNaN。
2025-09-01 17:15:12
600
原创 【Java异常处理:Java.lang.IllegalArgumentException】
是Java中一个常见的运行时异常(),当向方法传递了不合法或不适当的参数时会抛出此异常。它是开发过程中经常遇到的一种异常类型,继承自,因此不需要在方法签名中显式声明。// 构造方法super(String.format("参数'%s'的值'%s'无效: %s", parameterName, invalidValue, message));// Getter方法// 使用示例"百分比必须在0到100之间");
2025-09-01 16:12:33
2460
原创 【Java 异常处理:深入理解 java.lang.ArrayIndexOutOfBoundsException:】
Java数组越界异常ArrayIndexOutOfBoundsException是常见的运行时错误,当访问超出数组边界的索引时抛出。典型场景包括:直接访问无效索引、循环条件错误或复杂计算导致越界。解决方案包括使用条件判断检查索引范围、try-catch捕获异常、增强for循环避免手动索引操作。调试时应重点检查循环条件、验证外部输入并编写边界测试用例。实际开发中,对用户输入索引需特别处理,可封装安全访问方法提供默认值。通过预防性编程和异常处理可有效避免这类错误,提高代码健壮性。
2025-08-27 20:59:41
622
原创 【Java 异常处理:如何解决:java.lang.ArithmeticException: / by zero】
Java程序在整数除法运算时,当除数为零会抛出ArithmeticException: / by zero异常。本文介绍了两种处理方法:使用try-catch块捕获异常,或在运算前检查除数是否为零(推荐做法)。相比浮点数除以零会返回Infinity,整数运算需要特别处理这一边界情况。开发中建议优先采用条件判断预防异常,仅在必要时使用异常处理,并记录详细日志以便排查问题。
2025-08-27 20:52:45
656
原创 【Java 异常处理:Java空指针异常(NullPointerException)】
绝不信任外部输入:对参数、API响应、配置项做null校验避免传播null:用空集合、Optional、空对象替代null返回值工具赋能:IDE调试器 + 静态分析工具 + 单元测试三重防护核心认知:NPE不是语言缺陷,而是设计缺陷。
2025-08-19 11:17:42
679
原创 【Java 异常处理:java.lang.numberformatexception: for input string java数字格式异常解析与解决方法】
本文解析了Java中常见的NumberFormatException异常及其解决方案。该异常在将无效字符串转为数值类型时抛出,常见原因包括:字符串含非数字字符、空值/null、数值超出范围或格式不匹配。文章提供了三种解决方法:1)使用try-catch处理异常;2)预检字符串格式(空值检查+正则验证);3)选择正确的数据类型(如浮点数用parseDouble)。最佳实践包括防御性编程、精准捕获异常和数据清洗。通过正确处理可避免程序因格式转换问题而中断。
2025-08-14 16:57:06
1831
原创 【2021年上半年软件设计师上午错题解析】
所以对该位置进行比较的关键字,可能是e的同义词,也可能不是e的同义词,B和C的说法太过绝对,相比而言D的说法更合适,本题选择D选项。评价模块结构的质量。【解析】:首先对于第一空,选择的对象一定是表E或表C,而此时C是没有部门名的,因此筛选对象一定是表E,其次判断某个列的取值,需要用引号标注,排除错误格式A,本题选择的应该是C选项。接着对于第二空,选择的对象一定是表C或表EC,而此时EC是没有商品名的,因此筛选对象一定是表C,并且投影需要保留商品号和商品名,因此投影的列号是1和2,本题选择的应该是B选项。
2025-07-01 21:19:54
588
原创 【2020软件设计师下半年上午试题错题整理分析】
在系统设计时,需要权衡系统的深度和宽度,尽量降低系统的复杂性,减少实施过程的难度,提高开发和维护的效率。【解析】:分布式数据库是由一组数据组成的,这数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立处理的能力(称为场地自治),它可以执行局部应用,同时每个结点也能通过网络通信子系统执行全局应用。系统分解时需要考虑模块的规模,过大的模块可能导致系统分解不充分,其内部可能包括不同类型的功能,需要进一步划分,尽量使得各个模块的功能单一;2,共同封闭原则:包中的所有类对于同一种性质的变化应该是共同封闭的。
2025-06-25 23:26:51
600
《LangChain入门指南》学习笔记1:第1章 LangChain:开启大语言模型时代的钥匙 思维导图
2025-10-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅