自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 BufferedReader的源码分析和使用方法详细分析(windows操作系统,JDK8)

在计算机中,文本是最普遍、最基础的数据交换格式,从日志文件到 JSON API,从数据库查询结果到机器学习训练集,文本无处不在。BufferedReader是自 Java 1.1 起就存在的用于文本处理的装饰器类,其内置的缓冲区char cb[]数组(默认长度是8192,占16k内存)可以保证使用者在调用readLine() 函数、read()函数时可以减少底层 IO 的操作次数,而不用让JVM在进行IO时每次都切换到操作系统的内核态进行一次昂贵的磁盘或网络 I/O。

2026-07-06 15:22:14 220

原创 DeepSeek DSpark 在真实高并发推理服务中,如何保证 Token 生成又好又快?

这个调度器会结合两类信息:一类是 token 层面的 prefix survival probability,另一类是系统层面的 engine throughput profile,也就是推理引擎在不同 batch size 下的吞吐曲线。然后,它会为每个请求动态选择更合适的 verification length,把目标模型的验证预算分配给预期收益更高的前缀 token。这两个续写本身都合理。也就是说,只要中间某个 token 被拒绝,后面的 token 即使本身质量不错,也会被一起丢弃。

2026-07-06 15:20:50 204

原创 从方法调用说起

现在,请思考一个问题,当我们调用一个方法时,我们只需"直呼其名",像代码3的first_name和city等方法那样(当然,加上"()"也是可以的,即person1.first_name()),这意味着,当我们引用一个方法的名字时,我们实际上在引用它的返回值,那么,如果我想把一个方法本身而不是它的返回值作为参数传给另一个方法呢?值得提醒的是,由于默认对象正是calc_preferential_price方法的所属对象,于是我们可以省掉method方法前面的"消息接收者",当然,你也可以自行加上。

2026-07-05 15:46:48 168

原创 一、关于类型

什么叫做类型?简单地说,类型就是把内存中的一个二进制序列赋予某种意义。比如,二进制序列0100 0000 0111 0000 0001 0101 0100 1011 1100 0110 1010 0111 1110 1111 1001 1110如果看作是64位无符号整数类型就是4643234631018606494 而按照IEEE 754规定的浮点数二进制表示规则(见附1)双精度浮点类型则是257.331。

2026-07-05 15:46:04 198

原创 Windows Phone 7重量级版本升级 - Mango (芒果)

基本符合,Scott没有过多的在MIX11上对Silverlight 5进行细节介绍,而是由Silverlight开发团队的John Papa对Silverlight 5的3D功能进行了演示和讲解。http://www.silverlight.net/getstarted/silverlight-5-beta/下载最新的Silverlight 5开发工具,以及SDK。这次Silverlight 5 Beta版本,和去年年底的FireStarter大会介绍的。

2026-07-04 15:47:37 163

原创 出身在二三线城市软件工作者的悲哀

我们来到一线城市,忍受着对家人的思恋,忍受着独自一人的孤独,忍受着群居不到十平米的狭小空间,忍受着房东“乡下人”的看待,忍受着不断高涨的房租、物价,忍受着把自己最好的青春时光奉献给我们的国际大都市而换来当地人“房价这么高都是你们外地人造成的”的指骂,忍受着春运时排队一天却买不到一张站票最终只能高价购买黄牛票的无奈,忍受着每天泡面+盒饭、口味根本不合并且无法按时吃饭的生活,忍受着同样交五险一金和税但却不能享受和当地人一样待遇的现实……一句话,我们像小强一样的活着。我们为什么如此惨呢?

2026-07-04 15:46:51 179

原创 协议森林08 不放弃 (TCP协议与流通信)

TCP的补救方法是,在每收到一个正确的、符合次序的片段之后,就向发送方(也就是连接的另一段)发送一个特殊的TCP片段,用来知会(ACK,acknowledge)发送方:我已经收到那个片段了。发送方会重复发送(retransmit)那个出现异常的片段,等待ACK回复,如果还没有收到,那么再重复发送原片段... 直到收到该片段对应的ACK回复(回复号为L+1的ACK)。发送方和接收方各有一个滑窗。对于接收方来说,滑窗的左侧是已经正确收到并ACK回复过的片段(比如片段1,2,3,4),也就是正确接收到的文本流。

2026-07-03 19:47:08 219

原创 协议森林09 爱的传声筒 (TCP连接)

在中,我们概念性的讲解了TCP通信的方式。可以看到,TCP通信最重要的特征是:有序(ordering)和可靠(reliable)。有序是通过将文本流分段并编号实现的。可靠是通过ACK回复和重复发送(retransmission)实现的。这一篇文章将引入TCP连接(connection)的概念。

2026-07-03 19:46:14 216

原创 可信前端之路-代码保护

这是一个老生常谈的问题。其实正是因为js传输的就是源代码,我们才需要进行混淆,暴露在外的代码没有绝对的安全,但是在对抗中,精心设计的混淆代码能够给破坏者带来不小的麻烦,也能够为防守者争取更多的时间,相对于破解来说,混淆器规则的更替成本要小得多,在高强度的攻防中,可以大大增加破解者的工作量,起到防御作用。我们上面说了,我们需要生成新的AST结构意味着会生成和源代码不一样的js代码,但是我们的混淆是不能破坏原有代码的执行结果的,所以混淆规则必须保证是在不破坏代码执行结果的情况下,让代码变得更难以阅读。

2026-07-02 22:13:00 239

原创 随谈10年的技术生涯和技术成长

上面的内容,其实只是个大概的节点情况,太多细节点的过程,来不及细说,全面汇总成以下几点:1:大量的编码实战。2:开发自己的作品。3:学会分享。4:学会低调,知识归零。关于看书:这么多年,我很少看技术类的书,因为人的特征本各不相同,我不善于记忆,只能通过大量的实战来形成条件反射。另外,从实战到=》互联网的文章,有目的性的补充知识,更加容易被吸引。所以,看书和看文章,其实本质都是在学习,只是我是通过实战驱动去补充知识,而不是单纯的看书,然后选择被遗忘。

2026-07-02 22:12:28 200

原创 石器时代1

3.0版本上线三个月之后,系统运行的还算良好,但是我们发现数据库表项在飞速膨胀。我们的云服务用户已经有几万个,每个采集端每天平均都要上传几十条视频,所以按照这种速度,单表记录很快就来到了将近1000w。在mysql上,1000万几乎就是单表记录上限了。搞web的兄弟发现这一趋势后,做了分表方案。按照采集端的cid尾数 即(0-9),将event,file,以及映射表分成了10张表。虽然是解决了存储方面的问题,但是随着使用云服务的用户在不断增加,数据库的访问压力也在渐增。

2026-07-01 19:40:14 180

原创 在互联网金融行业一百多亿其实也算不上大平台,

给销售开发了销售系统;第一代系统上线之后,网站和H5(手机浏览器或者微信端)系统建设就变的特别突出,作为一个互联网金融公司没有官网不能忍,于是又开始马不停蹄的开始开发网站和H5系统,在这个期间PHP之前做的后台这块摘了出来,用java从新规划了一版,至此PHP就负责了网站、APP接口、H5这三个系统,三个系统共用的一个核心交易,java这边负责后台管理和定时服务,我们一般给这个架构叫做1.1代架构。,其实这个工具在使用中,也不是特别的稳定,但是当初的选择方案并不多,幸好后期慢慢的熟悉后算是稳定了下来。

2026-07-01 19:39:31 220

原创 字符串匹配算法

System.out.println("模式串在位置 " + position + " 处匹配");// 第一个哈希的质数。// 第二个哈希的质数。// 哈希计算使用的质数。// 计算哈希乘数,等于d^(m-1) % PRIME,用于滚动哈希计算。// 滑动窗口,计算所有长度为WINDOW_SIZE的子串哈希值。,时间复杂度平均为O(n+m),n是文本串长度,m是模式串长度。// 两个哈希都相等时,再进行字符比较。// 哈希值相等时,检查是否真正匹配。return -1;return -1;

2026-06-30 19:35:32 537

原创 数据点的“社交距离”:衡量它们之间的相似与差异

这一类距离最符合我们的直觉,通常用于处理数值型数据(比如身高、体重、经纬度)。如果特征的单位不同(如年龄和收入),直接计算会导致收入特征主导距离计算。考虑了数据的协方差结构,是一种尺度无关且排除了特征相关性的距离度量。杰卡德距离衡量两个集合的差异程度,通过计算交集与并集的比例得到。在二维平面上,两点间的欧氏距离就是连接它们的直线长度。衡量的是两个向量方向的差异,而不是它们的大小差异。中特别有用,因为文档的长度不同,但主题可能相似。的距离,衡量两个变量之间线性相关性的差异。的数值,再看看相关系数的变化。

2026-06-30 19:34:50 181

原创 【从0到1构建一个ClaudeAgent】工具与执行-Agent循环 _

break就这?就这。剩下的全是围绕这个循环的各种优化和补丁。用 Java 来写,核心循环大概是这样:javaif (!break;正是考虑到我们的读者多数是Java同学,因此我决定用Java来和大家一块学习下。

2026-06-29 19:00:28 157

原创 LangChain 基础使用:从入门到实战

写 LLM 应用最烦的就是 Prompt 拼装。| 这个管道操作符是 LangChain Expression Language 的核心,把组件串联起来。做聊天机器人必须处理历史消息。单个 LLM 调用的场景有限。模板的好处是 Prompt 和代码分离,改 Prompt 不用动逻辑。每次把 history 传进去,模型就能理解上下文了。这就是 Chain——把输入一层层传递,最后出结果。来一个完整的例子:根据书名自动生成读书笔记。三行代码,完成第一次调用。

2026-06-29 18:59:29 179

原创 记一次微服务架构下的HTTP请求头“大小写”丢失排查之旅

既然整个网络链路(Nginx -> Gateway -> 本地网卡)都没有修改请求头的大小写,那问题必定出在 Spring Boot 服务内部。为了验证,我直接使用 Postman 直连 Spring Boot 服务()发起请求,并在代码中断点调试以下获取请求头的方法:Java运行结果让人大跌眼镜:遍历打印出来的headerName全是小写的appkey!遇到跨多节点的网络问题,善用tcpdump结合 Wireshark 追踪 TCP 流是最直接高效的手段。不要过度依赖主观猜测。

2026-06-28 16:48:20 238

原创 Hermes Agent Skill Runtime 架构拆解:让 AI Agent 不再从零开始

很多 Agent 产品有一个尴尬的问题:它们看起来每天都在工作,实际上每天都从零开始。用户让它处理第 1 个复杂任务时,它会试错;第 20 次遇到类似任务时,它还在试错;到了第 50 次,最多只是这次上下文里显得熟练一些。对话一结束,经验就跟着蒸发。所谓"我记住了",经常只是当前 session 里的礼貌回应。这不是单纯换一个更强模型就能解决的问题。模型权重不会因为一次工具调用失败而更新,普通上下文也没有跨任务的经验沉淀能力。

2026-06-28 16:47:37 220

原创 C#一行代码免写Web登录页:PicoServer 的 AddBasicAuth 中间件实战

这个弹框长得不好看,但客户并不在乎这个,他只要“有个密码挡着就行”。现在有 OAuth、JWT 等更复杂的方案,但 Basic Auth 在简单场景下依然好用——内部工具、配置页面、临时加锁。HTTP 基本身份认证,HTTP/1.0 时代就存在的认证方式。大概流程:浏览器访问受保护路径 → 浏览器自动弹出登录框 → 用户输入用户名密码 → 后续请求自动带上认证信息,登录失败报401。如果配置页面需要暴露在公网,前面加一层 NGINX 做 HTTPS 即可,PicoServer 作为胶水库不直接处理证书。

2026-06-27 20:26:50 232

原创 使用typedef封装函数指针新类型

本质上是不一样的,一个是函数指针存储函数的第一条汇编指令的内存地址,一个是这个函数的函数体,在输出的时候会隐式退化成test。类型名test就表示一个返回值是void参数是void的一个函数指针类型,与上面的int a不同这里的变量名是test。按道理讲要返回函数内容也就是函数体,但是事实上没法返回函数体。并且这里面的test的值就是存储函数指针,也就是这个函数的第一条语句的内存地址。不管多少个解引用,结果都是这个函数的内存地址。这个函数声明表示定义了一个参数为void,返回空的test函数。

2026-06-27 20:25:50 165

原创 它解决的不是“写代码”,而是“盯流程”

接下来它会问你有没有自定义指令。每次修改后都运行测试优先处理某个 Story注意数据库迁移如果你没有特殊要求,直接选none如果你有本轮迭代的偏好,可以临时注入也就是说,它把“人类经验”当成一种可选输入,而不是每次都强迫你从头配置一大堆参数。

2026-06-25 19:53:01 182

原创 输入序列如何到达注意力模块的?

注意力模块存在于编码器栈和码器栈的每个编码器中。我们首先来详细了解一下编码器的注意力机制。以英译西举例,源序列示例是 "The ball is blue.",目标序列是 "La bola es azul"。源序列首先经过嵌入和位置编码层,每个词被生成嵌入向量。嵌入向量随后被传递到编码器,编码器首先会经过注意力模块。在注意力机制中,嵌入的序列会经过三个线性层,生成三个独立的矩阵:查询矩阵、键矩阵和值矩阵,用于计算注意力得分。需要注意的是,这些矩阵的每一行都对应于源序列中的一个单词。

2026-06-25 19:51:31 159

原创 马斯克都在用的“第一性原理“:为什么90%的程序员在“卷框架“,而高手只看一件事?

它的终极目标,是让复杂问题变简单。此刻这个需求,真正要解决什么问题?是短期噪音,还是持续的真实痛点?答案清晰,选型就简单了。马斯克说:"一层层剥开事物表象,看到本质,再从本质一层层往上走。编程世界里,表象是框架、语法糖、"这个更先进"的焦虑。而本质,永远是问题。如果这篇文章让你少学了一个无用框架,多了一层底层认知,欢迎转发给那个还在"类推思维"里打转的朋友。毕竟,在这个行业里,看清本质的人,永远比勤奋刷文档的人,走得远。标签:第一性原理。

2026-06-24 19:23:26 168

原创 Redis简介

Redis(Remot Dictionary Server 远程字典服务)是一个使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、NoSQL开源内存数据库。Redis之所以称为字典服务,因为它是一个key-value存储系统,支持的数据类型有String(字符串)、List(链表)、set(集合)、zset(有序集合)、hash(哈希)等数据结构。

2026-06-24 19:22:36 177

原创 【Ubuntu】配置 WSL 环境时,启动虚拟机平台时进度条卡住

进入后点击 setup.exe -> 更改安装程序下载更新方式 -> 勾选下载更新、驱动程序和可选功能,后续一直下一步操作,等待即可完成更新(时间较久,半个小时到两个小时不定)。安装 wsl 前,需要启用虚拟机平台功能,有两种方式启动,但是都无一例外的进入了如下图的。查看你电脑上的 Windows 是专业版还是家庭版,我这里是家庭版,下载对应版本即可。花了一整天才搞定这个问题,太费劲了。下载以进行系统更新。

2026-06-23 17:24:23 307

原创 深度解析Claude Code 51万行源码背后的设计实现

在源码里,每个工具都遵循同一套接口:名字、描述、额外 prompt、输入 schema、调用逻辑、权限检查、输入校验、并发安全判断,以及四层 UI 渲染方法——工具开始、工具进度、工具结果、工具报错。代码目录也非常重:主入口、查询引擎、工具注册表、100 多个 slash commands、146 个 UI 组件、自研 terminal framework、85+ hooks、330+ utils、多智能体协调、远程管理、任务系统、迁移系统,几乎把一个现代复杂应用该有的层全铺齐了。

2026-06-23 17:23:28 185

原创 和AI一起搞事情#6. 如何实现AI生图文字可编辑?

哎哟,然后就让我看到拆分图层后的文字,其实和原始图片中的文字字体和颜色并不一致……哈哈哈,再加上被同事写PPT的思路(让AI生图画色块,再在上面叠加文本框)点亮了灵感,我就想出了下面的方案。当然,完全不保证Lxxxxt就是这么做的,只能说效果上有些类似。复现的代码已经上传到Github:poster-text-editor。模型部分文字识别和图像编辑使用的模型只能大家去代码里看了,审核不让说,都是用的老张NLP中转站(好处就是可以各取所长,三大巨头每家模型都各有所长)。但是项目需要大家自己提供Key才能使用

2026-06-22 20:51:48 353

原创 入门:我的第一个Vibe Coding实践程序

在 AI 领域,Agent(智能体/代理)可以通俗地理解为一个能自主感知环境、进行思考决策,并主动采取行动来实现特定目标的“智能管家”。它与我们平时常用的普通 AI 对话机器人最大的区别在于:普通AI通常是被动响应,仅生成文本;而 AI Agent 具备目标导向、自主规划和工具使用的能力,不仅能“说”,还能真正帮你去“做”事。以下是 AI Agent 的特性,以及其与传统 AI 的对比。特性关键描述传统AI 特点Agent 对应的改善自主性。

2026-06-22 20:50:59 336

空空如也

空空如也

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

TA关注的人

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