自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 unity性能优化-实际开发中需要注意的点

堆内存的分配通常比栈内存的分配慢,因为堆内存需要处理垃圾回收(Garbage Collection),而且堆内存分配涉及更多的管理操作。装箱是将值类型转换为对象类型(通常是将值类型包装在堆上),而拆箱则是从对象类型还原为值类型。:泛型可以减少装箱和拆箱的需要,因为泛型可以在编译时确定类型,而不需要在运行时进行类型转换,但是泛型带来另一个问题,即转换为il2cpp的时候,代码会膨胀,这个后面可以再说。:在某些情况下,可以使用struct来代替类,因为struct是值类型,不需要装箱和拆箱。

2026-04-10 23:19:10 411

原创 字符串分割并展开成表格的SQL实现方法

技能:Java、Spring、微服务、项目管理- 项目经验:电商、金融、教育- 工作风格:#执行力强 #跨部门协作 #数据驱动除此之外,在一些特定的业务场景中,如证券场景中,需要将一笔回购合约涉及到的多个质押券进行拆分(提取每个质押券有质押数量及对应标准券转换比例),数据示例如下:另外,API请求的返回的数据多为半结构化的字典列表数据,需要将每行数据从列表中进行提取出来再进行后续的处理,如以下数据:{"data": [

2026-04-10 23:18:30 382

原创 ctfshow-web文件包含(web78-web86)

对于 POST 请求数据,PHP 提供了 $_POST 与 $FILES 超全局变量,在客户端发起 POST 请求时,PHP 将自动处理 POST 提交的数据并将处理结果存放至 $_POST 与 $FILES 中。file关键字的get参数传递,php://是一种协议名称,php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。

2026-04-09 13:06:59 226

原创 MyBatis-Plus实战:Spring Boot数据库操作效率提升10倍

【代码】MyBatis-Plus实战:Spring Boot数据库操作效率提升10倍。

2026-04-09 13:05:57 65

原创 使用 Python 将 Excel 数据批量导入到数据库中(SQLite)

只需修改数据库连接部分,即可迁移到 MySQL、PostgreSQL 等。能自动处理字符串转义,避免因 Excel 单元格内容包含单引号导致的 SQL 错误,同时防范注入风险。工作表名称可能包含空格、特殊字符,直接用作 SQLite 表名会导致语法错误,因此使用。类型,适配 Excel 中字符串、数字、日期等通用格式(可根据业务修改数据类型)。返回已使用的单元格区域(包含数据的最大矩形),比直接遍历全部行列更高效。更严谨的做法可增加正则过滤,只保留字母数字和下划线。),以及字段类型映射的差异。

2026-04-08 13:35:34 311

原创 Python网络请求库,从 requests 到 httpx

如果说 Python 有哪个库改变了互联网开发的门槛,requests绝对榜上有名。它用极简的 API 终结了urllib2那个混乱的时代。直到今天,依然是很多程序员下意识写出的第一行爬虫代码。但随着 Python 异步生态(Asyncio)的全面爆发,以及 HTTP/2 协议的普及,这个诞生于 2011 年的老兵开始显露疲态。PS:为什么 AI 时代还要亲自钻研新技术?因为 AI 的底色是“过去”。如果你不掌握先进的工具,AI 就会用它的“经验惯性”把你留在旧时代。

2026-04-08 13:34:55 244

原创 AI 编程助手 + 基于 CLI 的 Manus 实现(Java 版本)

创建带有@Tool注解方法的类:12345678910111213141516publicclassMyTools {@Tool(description = "我的工具的功能描述","param1: 第一个参数\nparam2: 第二个参数"publicintparam2) {return"结果: "@Tool(name = "file_exists", description = "检查文件是否存在")publicreturn(path));

2026-04-07 13:22:47 396

原创 FastAPI + Vue 前后端分离实战:我的项目结构“避坑指南”

小张花了一周写完FastAPI接口,用Postman测试全部通过,美滋滋地去睡了个好觉。第二天起床,信心满满地启动Vue项目,npm run dev,然后……我见过最野的操作:每次部署前,手动把 axios 的 baseURL 从。(多了一个斜杠),在nginx下可能301重定向,cookie丢了。这是我最想吐槽的一点:很多人后端返回的数据结构每天不一样,今天。改成线上域名,然后commit,然后。👆 这个结构我用了很久,大小项目都稳得很。不对,我是FastAPI。这里写错了路径,就会404。

2026-04-07 13:21:37 385

原创 SourceGenerator之partial范式及测试

partial关键字允许将一个类或方法分散到多个文件中所以partial是代码生成的一个很好的抓手再配合Attribute特性,可以更准确定位需要生成代码的类或方法可以理解为静态的“依赖注入”对代码按规则自动补足,减少重复代码编写及其可能导致的失误还可以代替反射提高性能,AOT友好笔者称之为SourceGenerator的partial范式开源项目GenerateCore用于践行partial范式。

2026-04-06 13:27:08 426

原创 浏览器自动化六大技术路线深度对比:从模拟点击到 Chrome 扩展注入

这意味着你日常浏览网页、登录各种账号的那个 Chrome 进程,要么关掉重启带参数,要么你得维护两个 Chrome。但换个角度想:你每天打开 Chrome,登录了几十个平台,有完整的 Cookie、浏览历史、插件指纹。你启动的不是"你的 Chrome",而是一个全新的、干净到可疑的浏览器实例。检查,到浏览器指纹比对,到行为分析(鼠标轨迹、点击间隔、滚动模式),到现在的 AI 行为识别——因为确实是你的浏览器、你的 Cookie、你的指纹——只不过操作指令来自外部程序。一个驻留在你浏览器内的扩展,通过。

2026-04-06 13:25:36 571

原创 AI 工程化实战:5分钟带你快速掌握 Function Calling!

答案是我们的程序代码!需要注意的是,输出这种严谨的结构化指令,并非大模型天生就会的。这相当于模型发出了一个显式的调用请求,告诉后端程序:“我需要调用函数 A,参数是 B,请程序执行后将结果反馈给我”。这一步是让为了让大模型建立对工具的基础认知,它不需要知道这些工具怎么实现的,只需要记住这些工具的使用方式。将上面这个函数的信息,严格按照 JSON Schema 的格式描述出来,稍后连同用户的问题一起发给大模型。大模型拿到这个补充的事实数据后,结合最初的问题,最终接龙出一句自然回复:“张三所在的部门是研发部!

2026-04-05 14:16:52 406

原创 用 Laravel AI SDK 构建多智能体工作流

单次 LLM 调用非常适合简单任务。但复杂工作——比如代码审查、生成打磨过的邮件、或路由客服工单——你会希望多个 agent 协作,各自专注特定任务。把任务拆成有序步骤并行执行独立步骤把输入路由给最合适的 specialist在循环中评估并优化输出。

2026-04-05 14:16:00 429

原创 D006 【模板】并查集

并查集维护了若干个不相交的集合,每个集合通过一棵树来组织,根节点为该集合的代表。init(n)find(x)一个简单的并查集示例,可以先看图理解,再理解代码结构。并查集初始化、合并及查找图例图示的一个关键理解是:当fa[x] == x时,说明x是根节点。,比如将所有连通分量相连时,就可以按来将分量连起来。

2026-04-04 14:34:38 265

原创 typedef用法

用uint32_t替代声明变量/* 变量名重定义 *//* 定义一个`unsigned int`类型的变量 */使用结构体定义以及声明结构体变量:double x;double y;double z;/* 定义一个三维坐标结构体 *//* 声明一个三维坐标点 */使用typedef代替结构体定义以及声明结构体变量:double x;double y;double z;} TagPoint;/* 定义一个三维坐标结构体 *//* 声明一个三维坐标点 */

2026-04-04 14:33:59 35

原创 VUE3解析学习 - HANDLERS 模块

某些依赖只关心结构变化(比如 for...in、Object.keys)。这不是“复杂”,而是对 JavaScript 语义边界的工程妥协。不同数据结构,用不同的代理策略,做到“最小拦截 + 精确触发”。mutableCollectionHandlers(深响应式)TriggerOpTypes.SET(修改已有属性)在 get trap 中返回“重写版本”的数组方法。TriggerOpTypes.ADD(新增属性)这是 Vue 3 响应式系统的灵魂改进之一。大部分变更不是通过属性赋值,而是通过方法。

2026-04-03 15:00:03 340

原创 “Fatal error: require(): Failed opening required...” 以及如何彻底避免它再次出现

把include和require用好,不只是语法问题,而是工程能力问题。你的代码运行在操作系统、权限模型、缓存机制和部署流水线共同构成的环境里。只理解“本地能跑”,远远不够。

2026-04-03 14:59:18 449

原创 linux服务器静默安装Oracle26ai

1.安装环境准备1.1.查看物理内存1.2.操作系统版本1.3.操作系统内存1.4.磁盘空间1.5.查看系统架构1.6.解析/etc/hosts1.7.关闭防火墙还有selinux2.创建用户和组。

2026-04-02 15:35:09 69

原创 Clawdbot 是如何实现永久记忆的?

在深入探讨记忆之前,我们先来理解模型在每次请求时能看到什么:系统提示词定义了Agent的能力和可用工具。与记忆相关的是"项目上下文",它包含了用户可编辑的Markdown文件,这些文件会被注入到每次请求中:这些文件位于Agent的工作空间中,与记忆文件并存,使得整个Agent的配置变得透明且可编辑。理解上下文和记忆之间的区别,是理解Clawdbot的基础。上下文是模型在单次请求中能看到的一切:上下文的特性:记忆是存储在磁盘上的内容:记忆的特性:Agent通过两个专用工具来访问记忆:用途:在

2026-04-02 15:34:28 377

原创 FastAPI搭档Pydantic:从参数验证到数据转换的全链路实战

FastAPI作为餐厅服务员,会拿着顾客的“点单”(请求),去核对你预定义的“菜单”(Pydantic模型)。只有完全合规的点单,才会被送往后厨(你的业务逻辑函数)。FastAPI则深度集成它,自动在请求入口处完成验证,验证失败则直接返回清晰的422错误,业务函数收到的,永远是你期望的、干净的数据对象。菜单上明确写着:牛排(主菜,字符串),几分熟(枚举:一分/三分/五分/七分/全熟),备注(可选字符串)。极其强大,它保证了API输出的一致性,并自动过滤敏感字段(如密码),无需手动构造返回字典。

2026-04-01 15:32:02 244

原创 MySQL深度分页优化实战:从踩坑到落地的全攻略

MySQL深度分页的核心矛盾,本质是offset导致的无效扫描。优化的核心思路就是:能不用offset就不用,优先用书签分页;必须用offset就减少扫描数据量,用子查询/JOIN优化;业务上能限制分页深度就限制,从根源规避问题。在实际开发中,不需要追求最复杂的方案,而是要结合业务场景选择最合适的。大部分场景下,书签分页+索引优化就能满足需求,改造成本低,性能又稳定。希望这篇实战总结能帮到大家,避开MySQL深度分页的坑。

2026-04-01 15:30:53 364

原创 try-with-resources 详解

(Syntactic Sugar)是计算机语言中对语法进行的一些改动,使得代码更易于人类阅读和编写,但并不改变语言的功能或表达能力。本质上,编译器 / 解释器会在背后把这些 "甜语法" 转换成语言原本的基础语法来执行。是 Java 开发中资源管理的首选方式,大大减少了资源泄漏的风险,提高了代码的可读性和可维护性。必须实现 AutoCloseable。(支持在括号内声明多个资源,用。(多个资源按声明顺序关闭 -或 Closeable。

2026-03-31 15:59:24 24

原创 剑指offer-61、序列化二叉树

序列化可以基于先序、中序、后序、层序的⼆叉树遍历⽅式来进⾏修改,序列化的结果是⼀个字符串,序列化时通过 某种符号表示空节点( # ),以!剩余元素中,所有小于根节点的值构成左子树的前序遍历,大于根节点的值构成右子树的前序遍历。从根节点开始,将节点值加入字符串,并将其非空子节点(即使是空节点也记录)加入队列,以确保树结构信息完整。利用二叉树的前序遍历顺序(根-左-右)进行序列化,并使用特殊字符(如"#"或"null")表示空节点,以确保树结构的唯一性。

2026-03-31 15:58:23 363

原创 按DDD领域分析Openfeign

使用 kubectl-neat 插件,可以自动移除这些由集群生成的冗余字段,仅保留有意义的内容,使 yaml 更加简洁,方便复用。## 这里我直接将 kubectl get -o yaml 与 kubectl-neat get -o yaml 输出对比。## 示例是通过 kubectl plugin 方式安装,使用二进制安装改成 kubectl-neat 就好。## 上面说没啥用的地方就在这...实际上能用的参数只有 get(kubectl-neat 自己的参数)## 自动补全命令用的。

2026-03-30 15:53:26 311

原创 使用_mm_stream_si128加速 Memory-Bound(内存受限)类算法的执行速度。

set_target_properties(mypass2 PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) #---->修改 项目名称。set(LLVM_DIR "D:/LLVM/llvm-project/build/lib/cmake/llvm")#---->修改 llvm cmake配置路径。target_compile_options(mypass2 PRIVATE /utf-8)#---->修改 项目名称,文件名。

2026-03-30 15:45:30 322

原创 告别臃肿:为什么 Drizzle ORM 是 TypeScript 后端的未来?

在一次会话生命周期内,相同会话的请求均会被亲和路由到同一个实例中,并独占该实例,保证了会话交互的连续性、上下文完整性以及多租安全性,同时提供完整的管理接口来主动对会话生命周期进行控制,降低了开发门槛。这不仅满足了高并发场景下的需求,也保证了 Agent 交互的流畅性,避免了传统虚拟机启动慢带来的延迟感。AgentRun 利用函数计算提供的极致弹性能力,实现在分钟内启动成三万个独立的沙箱环境,每个环境都运行在独立的 MicroVM 中,搭配自研开箱即用的沙箱镜像模版,在功能以及性能上为用户提供了双重保障。

2026-03-29 17:18:39 391

原创 使用_mm_stream_si128加速 Memory-Bound(内存受限)类算法的执行速度。

set_target_properties(mypass2 PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) #---->修改 项目名称。set(LLVM_DIR "D:/LLVM/llvm-project/build/lib/cmake/llvm")#---->修改 llvm cmake配置路径。target_compile_options(mypass2 PRIVATE /utf-8)#---->修改 项目名称,文件名。

2026-03-29 17:17:00 293

原创 Kubernetes集群的搭建与DevOps实践(下)- 部署实践篇

于是,我基于最新的技术栈(Next.js 16 + React 19),接入了 OpenAI等一众大模型,搞出了一个会“读心”、会嘲讽,甚至懂博弈论的猜拳游戏。这个项目证明了一件事:技术是冰冷的,但通过简单的创意组合,可以创造出有温度(甚至有点烫手)的交互体验。比如它会分析:“玩家上一把输了,根据心理学,这把他大概率会出克制我上一把的招数,所以我预判他……为了增加趣味性,我让 AI 不仅输出“石头/剪刀/布”,还要输出一段 Reasoning(推理过程) 和 Comment(赛后嘲讽)。

2026-03-27 13:26:50 365

原创 JVM内存与GC机制全景深度剖析:从对象诞生到垃圾回收的完整生命周期

MongoTemplate 读取超大表数据 避免OOM,setFetchSize(Integer.MIN_VALUE)启用MySQL服务器端游标,Mongo使用流式读取的api,内存占用恒定。stmt.setFetchSize(Integer.MIN_VALUE):MySQL JDBC的特殊约定,启用服务器端游标。不要盲目追求所谓的"最佳实践",在约束下求最优解,才是工程师的智慧。答案就藏在Navicat的"导入/导出"功能里——直接构造SQL文件上传OSS,塔内执行,复杂逻辑全都在塔外处理!

2026-03-27 13:26:09 377

原创 Oracle数据库物理备份与恢复技术深度解析

当你将浏览器视为 AI 的外部感知与执行接口,而非单纯的 UI 工具时,就会理解其设计定位,它服务的是大模型可靠执行 Web 任务的能力,而不仅仅是完成点击与输入操作。执行 agent-browser snapshot -i 后,工具会扫描当前页面,提取所有可交互元素(按钮、输入框、链接等),并为每个元素分配唯一引用标识,如 @e1、@e2、@e3……同时附带简洁描述:。{ "id": "@e2", "text": "Google 搜索", "role": "button" },。

2026-03-26 23:16:02 202

原创 2025年 Safari 和 iOS版本检测新思路

微软这门课的定位不太一样,它聚焦在 AI Agent 开发这一个方向上,从概念到落地讲得非常细,适合想动手搞 Agent 的同学。Agent 开发的前提是你得先会用 AI 写代码,如果你连 AI 编程(Vibe Coding)的基本功都还没练过,直接啃 Agent 课大概率会卡在代码层面。建议想学 AI Agent 开发的朋友们,先把 AI 编程能力培养起来,做出几个项目练练手,等你能独立用 AI 写代码了,再来学 Agent 开发的工程化内容,效果会好很多。但问题是,到底怎么开发 Agent 呢?

2026-03-26 23:15:20 292

空空如也

空空如也

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

TA关注的人

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