- 博客(92)
- 收藏
- 关注
原创 前端架构的未来十年:从单页应用到多运行时协同的全新 Web 形态
从最初的 jQuery 时代,到三大框架鼎立,再到 WebAssembly、Server Components、AI-assisted coding 的快速发展,前端正从“页面开发”升级为“运行时架构设计”。然而,当下前端仍面临许多痛点:包体积不断膨胀、渲染链路日益复杂、工程体系过于繁重、首屏性能挑战持续存在、前后端协作边界模糊……本文将从渲染模型、运行时架构、性能优化、工程体系、云原生与 AI 时代的前端演变等角度,探讨前端未来十年的技术方向与核心竞争力。此时前端的核心是“工程体系”与“模块化开发”。
2025-11-29 22:25:40
526
原创 Java 性能真正的决定因素:从 CPU 缓存到 JVM 内存布局的底层效率解析
在日常 Java 开发中,许多工程师关心的性能问题往往停留在表层:GC 调参、线程池大小、数据库连接数、方法优化、业务逻辑调整等。现代服务器的内存结构极其复杂,从 L1/L2/L3 缓存到 NUMA、TLB、分支预测,再到对象布局和指针寻址,每一层细节都会影响 Java 的实际性能。如果你的 Java 对象分布散乱、数据不连续、缓存命中率低,那么无论你的 GC、线程池、数据结构多精妙,都无法挽回 CPU 等内存的损失。真正决定 Java 应用性能的,不是 GC,不是线程池,更不是语法,而是。
2025-11-29 21:37:56
713
原创 Java 的未来竞争力:从“一次编写,到处运行”到“自适应运行”的时代变革
Java 不再仅仅追求跨平台,而是在不同环境下自动发挥最佳性能,具备智能化、自优化、自适应的运行能力。在软件工程历史中,从未有一种语言像 Java 这样,能在数十年间贯穿桌面应用、企业系统、移动平台、大数据领域,并持续在云计算时代保持领先。过去 Java 的核心价值是。传统 Java 并发依赖操作系统线程,一旦线程数量超过 CPU 核心数,就会导致大量上下文切换,这是 Java 并发性能的历史包袱。Java 一直以 GC 闻名,但在现代云原生环境下,GC 不再只是回收垃圾,而是整个运行时性能的重要组成。
2025-11-29 21:04:54
711
原创 Java 工程化的第二曲线:从语言能力到全链路生产力体系的全面升级
Java 作为企业级开发的中坚力量,曾凭借稳定性、跨平台性和强大的生态体系,奠定了其在服务端开发领域的绝对优势。现代企业的 Java 技术栈,已经从“写业务逻辑”扩展为“驱动整个后端系统生命周期的技术框架”。编译、构建、监控、性能调优、API 管理、中间件协同、容器化部署、自动化测试、可观测性体系……本文将从工程化、架构演进、云原生适配、现代化运维体系四个维度,系统解析 Java 如何从语言进化为“全链路生产力平台”。云原生架构要求“轻量、快速、可组合、可观测”,Java 必须重新适应新的体系。
2025-11-29 20:55:48
893
原创 Java 生态的下一个十年:从虚拟线程到云原生时代的运行时革命
JDK 17 的 LTS 推出、JDK 21 的虚拟线程落地、JIT/AOT 编译体系进化、Project Loom、Project Panama、Project Valhalla 等重大工程持续推进,使得 Java 正在不断摆脱“笨重”“启动慢”“内存大”的固有印象,朝着新一代高性能、低延迟、高吞吐的现代运行时方向演化。本文将从运行时结构、并发模型、内存体系、云原生挑战、技术趋势五个维度,解析 Java 在新时代的核心价值与未来方向。未来的 Java 并发代码更像简单的同步逻辑,但底层却是高并发调度。
2025-11-29 20:42:34
669
原创 吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(一)
因为终结器的执行顺序是不固定的,当SampleObject对象被终结器触发析构函数时,其他对象(比如_mo)可能也触发了析构函数。造纸在SampleObject执行Dispose时,有可能_mo的Dispose()方法被执行了2次(自身一次,外部调用一次),从而造成意外后果。释放模式是Dispose模式和析构函数(finalizer)的结合使用,目的是为了确保资源能够被正确释放,无论是通过显式的调用Dispose方法,还是在对象被垃圾回收器(GC)回收时触发析构函数。正常情况下我们的代码问题不大。
2025-11-19 21:24:36
752
原创 阿里云智能语音简单使用:语音识别
咎只友灿NET 团队在官方博客上发布了.NET 10 RC2[1], .NET 10 作为继 .NET 9 后的长期支持版本(LTS),提供3年官方支持。RC2 是正式版(GA)前的最终候选版本,已具备生产环境可用性(Go-Live License),支持企业级部署。.NET MAUI:XAML 强类型源码生成器提升构建性能与 IntelliSense 支持,新增 ShadowTypeConverter、Switch.OffColor 等控件 API。RC1(2025年9月10日):聚焦稳定性与性能优化。
2025-11-19 21:20:48
257
原创 事件 表示已经发生的事情,需要通知其他模块进行处理 . 事件发布器 负责发布事件的对象 . 事件处理器 实际接收到通知并处理事件的对 ...
指示:- 回顾现有剧本和之前尝试的反思- 仅识别当前剧本中缺少的新见解、策略或错误- 避免重复 - 如果已经存在类似的建议,只添加与现有剧本完美补充的新内容- 不要重新生成整个剧本 - 只提供所需的补充- 注重质量而非数量 - 一个专注、组织良好的剧本比一个详尽无遗的剧本更好- 将您的响应格式化为具有特定部分的纯 JSON 对象- 对于任何操作,如果没有新内容要添加,则在操作字段中返回空列表- 简洁明了 - 每个补充都应该是可操作的。核心需求是 “快速响应”,不需要历史信息干扰,避免冗余计算。
2025-11-19 21:17:19
715
原创 关于两个MVC示例的思考(MVCStore和Oxite)
HDRP引入更高精度的光照贴图UV生成和分辨率控制,URP随后适配简化版流程,如自动生成Lightmap UVs功能。Unity 5.x之前采用Enlighten光照系统,仅支持静态物体烘焙,动态物体需依赖Light Probe间接光照。URP整合了轻量级烘焙管线,支持混合光照模式(Mixed Lighting),允许静态物体烘焙阴影与动态物体实时交互。光源设为Mixed模式,静态阴影烘焙到光照贴图,动态物体接收实时阴影。:远景物体降低Scale In Lightmap值。
2025-11-19 21:13:46
298
原创 .NET CLR中的一些基本术语(中英文对照)
如果一个“计算密集型”的进程(比如 A 用户)拿到 CPU,它可能执行很长时间(比如一个耗时循环),导致后面所有“交互密集型”的进程(比如 B、C 用户的轻量任务)都被阻塞,系统响应速度急剧下降。这其实就是操作系统级的时间片轮转调度算法在分布式系统中的应用。“动态权重调整机制”的目的,我个人理解是为了给每个生产者一个合适的权重,从而决定这次生产的任务是应该放在队列的前面还是后面。“吵闹的邻居”会留在轮询队列中,“空闲的邻居”会自动退出,并且无论他们排队的工作量有多少,每个人都能公平地获得处理时间。
2025-11-19 21:09:51
239
原创 MVC 专题研究(二)——神奇的URL
攻击者可以发送一个“畸形”的 HTTP 请求,让你的前端代理(比如 Nginx、负载均衡器)和后端的 Kestrel 服务器对这个请求的“边界”产生误解,从而把恶意请求“走私”进去,绕过你的所有安全检查。通过对 PoC 代码的分析,可以得出结论:CVE-2025-55315 的根源在于 Kestrel 的 HTTP/1.1 解析器在处理分块传输编码 (Chunked Transfer Encoding) 时,对行结束符的处理过于宽松,接受了不符合 RFC 规范的畸形输入。
2025-11-18 22:28:48
320
原创 程序员应知——破窗与童子军军规
filename, _ = QFileDialog.getSaveFileName(self, '保存图片', '', 'Images (*.png *.jpg *.bmp)')如果有问题,随时讨论。这就是为什么它叫“Zero-Reference”(零参考),不需要依赖参考图像进行训练,这是一个很大的优点。例如,一张夜晚拍摄的照片,可能因为光线不足而看起来很模糊,经过增强后,就能看到更多细节,如绿植、房屋等。这些效果是通过PyQt5界面封装的,你可以直接打开图片,进行增强处理,并保存结果。
2025-11-18 22:25:07
270
原创 helloworld
是一个很小的常数(通常取 0.01)。相比逻辑回归,浅层神经网络在一次反向传播中更新了两层参数,而在之后的更复杂的神经网络结构中,隐藏层数量也不只一层,这样,在一次反向传播中,就会更新更多的参数。我们知道,在浅层神经网络里,我们涉及到两个层级各自的权重和偏置,因此,不同于逻辑回归中的一次更新,我们这次需要在一次反向传播过程中,更新两个层级的参数。我们想通过图中的几个数据点进行拟合,没有激活函数,我们就只能像左侧一样画一条直线,而只有使用了激活函数,我们才能让这条直线弯曲,来实现更好拟合效果。
2025-11-18 22:20:41
234
原创 WP有约(一):课程安排
AI也是如此,给它什么样的提示词,就会得到什么样的回答。以前我也是这样,每次长假后的第一周都像在调试一个状态异常的系统,各种报错和性能问题接踵而至。现在是2025年10月7日,国庆假期倒数第2天(明天10月8日是假期最后一天,10月9日上班)。定义了明确的输出格式,确保每次得到的信息都是完整和一致的。国庆假期还有2天结束(今天10月7日,后天10月9日上班),现在感觉[描述你的状态]。你是企业心理健康顾问。- [ ] **21:00** 进行10分钟"4-7-8呼吸法"(吸气4秒,憋气7秒,呼气8秒)
2025-11-18 22:16:43
234
原创 介绍下Nuget在传统Asp.net项目中的使用
如果一个“计算密集型”的进程(比如 A 用户)拿到 CPU,它可能执行很长时间(比如一个耗时循环),导致后面所有“交互密集型”的进程(比如 B、C 用户的轻量任务)都被阻塞,系统响应速度急剧下降。这其实就是操作系统级的时间片轮转调度算法在分布式系统中的应用。“动态权重调整机制”的目的,我个人理解是为了给每个生产者一个合适的权重,从而决定这次生产的任务是应该放在队列的前面还是后面。“吵闹的邻居”会留在轮询队列中,“空闲的邻居”会自动退出,并且无论他们排队的工作量有多少,每个人都能公平地获得处理时间。
2025-11-18 22:12:31
363
原创 【】How-To: Using the N* Stack, part
但可惜,事实并非如此,实际上,图中右侧的结果只是多次运行结果中最好的一次,几乎不可控,就像抽卡游戏里非常小概率的金卡一样。回看刚刚每轮的损失,我们会发现,造成这种差别的原因是:准确率只在0到1间波动,而逻辑回归的平均损失却在1-10这个量级内,相比之下,浅层神经网络的平均损失已经降到了0到1之间。最后附上完整代码,依旧要强调的是,在规范流程里,我们应该根据每次验证的准确率调整超参数,最后再进行测试,只是这部分内容还在后面,我们经过系统学习后再正式引入这部分。
2025-11-17 21:12:02
402
原创 换个角度谈谈学习的过程
一个 mini 版的渲染框架需要对 OpenGL ES 的常用指令进行归类(如下图),封装 EGL、error check、Shader Program、Mesh、VAO、VBO、IBO、Texture、FBO 等类,方便开发者快速开发渲染程序,将更多的注意力聚焦在业务上,而不是如何去组织 OpenGL ES 指令上。基于上述原因,笔者手撕了一个 nimi 版的渲染框架,将这些常用的渲染指令有条理地封装、组织、归类,方便愉快并高效地进行 OpenGL ES 渲染开发。// 打印Program错误日志。
2025-11-17 21:07:59
265
原创 Windows Server AppFabric Caching
至于方案三,不同的模式本来就对应着不同的服务场景,服务本身就是后端接口,切换为工作站模式也许可行,但ASP.NET Core默认就是Server GC,Server GC模式本身为了支持高性能并不会频繁执行垃圾回收(从.NET 9开始不一样,.NET 9的ASP.NET Core默认是第三种模式,.NET 8也支持这种模式,只不过不是默认的)。限定内存为0.5Gi后,内存释放曲线正常,HPA扩缩正常,响应时间正常,问题得到解决,也能解释服务的接口并没有出现性能下降的的现象。代码与dotnet-dump。
2025-11-17 21:03:17
222
原创 微软:我们关于Silverlight战略转移[原文]
馅沽蹬殖1. 球谐光照(Spherical Harmonics)模型 内存占用 GPU消耗 动态支持 视觉质量。URP混合方案 中 中 ★★★★☆ ★★★★☆。球谐光照 极低 极低 ★★★★★ ★★☆☆☆。反射探针 中-高 中 ★★★☆☆ ★★★★☆。SSR 低 高 ★★★★☆ ★★★★☆。核心方案:反射探针 + 球谐光照。开放世界:球谐为主+关键区域探针。球谐光照提供高效的漫反射环境光。实时动态物体也能接收球谐光照。高端设备:完整反射探针+球谐。将环境光信息编码为球谐系数。存储为立方体贴图或2D贴图。
2025-11-17 20:58:55
360
原创 Nginx模块开发入门
但是每个 LLM 框架的 Plugin 实现方式不一样,其使用和实现机制跟语言特性深度绑定,不能实现跨服务跨平台使用,所以出现了 MCP Tool, MCP Tool 是对标 Plugin 的一类功能,主要目的跟 Plugin 一样提供 Function,但是 MCP 有统一协议标准,跟语言无关、跟平台无关,但是 MCP 也不是完全替换 Plugin ,Plugin 依然具有很大的用武之地。
2025-11-17 20:54:01
398
原创 async 与 await 在 Web 下的应用
答案:INNER JOIN返回两个表中匹配的行,而OUTER JOIN(包括LEFT JOIN、RIGHT JOIN和FULL JOIN)不仅返回匹配的行,还返回左表、右表或两个表中未匹配的行。答案:优化慢查询的方法包括:使用EXPLAIN来分析查询计划,创建合适的索引,优化查询语句以减少不必要的数据处理,使用查询缓存,以及调整MySQL服务器配置。答案:FOREIGN KEY约束用于确保数据的引用完整性,它要求在一个表中的列必须是另一个表的主键或唯一键的值。这有助于维护表之间的一致性和数据的准确性。
2025-11-16 15:36:30
632
原创 SQL server 容易让人误解的问题之 聚集表的物理顺序问题
除了标准的闭包(你可以内联定义函数体),现在你也可以用 first-class callables 作为常量表达式了。这是一个简单的验证器属性,用来检查值是否为真值,默认实现就是把它转成布尔值,让 PHP 自己处理转换。节詹教士PHP 8.5 又带来了一个让人兴奋的新特性:闭包现在可以作为常量表达式使用了,这意味着它们可以出现在默认参数或属性值中。严格来说这是一个独立的 RFC,但它是因为投票原因才拆分的,技术上并不是独立的,所以我在同一篇文章里一起介绍。// 定义一个默认验证器。
2025-11-16 15:32:18
403
原创 在创业型软件公司的收获
去找了网络团队,从流量回溯设备上看到400确实是网关返回的,还没有到后面的业务系统,400代表BadRequest,我怀疑是不是请求体的问题,想让网络将那个时间段的流量包数据取下来分析,网络没给,只给我了业务报文参数,走网关请求的业务参数报文是加密的,我本地运行程序可以正常解密报文,我反馈给了负责运维Nginx的团队。不应该啊,以往网关发版的时候,是滚动发版的,F5上先下掉一个机器的流量,停启这个机器上的网关服务,然后F5上流量,F5下流量的时候是有长连接存在的,每次都会等个5分钟左右才能下掉一路的流量。
2025-11-16 15:28:28
918
原创 实战:上亿数据如何秒查
根据论文及实验经验,建议将LoRA同时作用于注意力层与MLP层(如target_modules=["q_proj","k_proj","v_proj","o_proj","gate_proj","up_proj","down_proj"]),以有效提升模型精度。优化后,模型训练速度提升2倍,显存占用降低70%。传统大语言模型微调往往面临硬件要求高、迭代速度慢和资源受限等挑战,而Unsloth通过高效的底层实现和友好的接口设计,显著降低了微调的技术门槛,使更多人能够高效、低成本地训练属于自己的定制模型。
2025-11-16 15:24:08
890
原创 从SHAttered事件谈安全
需要注意的是,低版本的 Cursor 是可以支持 MCP 服务 的,我使用的版本是 0.48.7。MCP 虽然功能强大,并且拥有广泛的应用前景,但在实际使用过程中,务必注意安全问题。实际上,配置 MCP Server 最核心的就是上述的 配置文件,前面的 图形界面步骤 并非必须,后续直接编辑 配置文件 也可以完成 MCP Server 的配置。Planning 模式:此模式用于生成详细的行动计划,非常适合在开始编写代码之前与 AI 进行沟通,清晰地分解任务,从而避免盲目操作导致的返工。
2025-11-16 15:19:47
803
原创 写给程序员的机器学习入门 (九) - 对象识别 RCNN 与 Fast-RCNN
向量内积更是各种推荐算法、特征相似度计算的基础范式,向量外积在机械工程学中大行其道等等,这些无一证明了向量在现实的数学应用中的重要地位。需要注意的是,向量的外积仅适用于三维图形,在四维及更高维空间中,垂直于两个向量的方向不唯一,而是一个高维子空间,因此无法用一个单一向量来表示。这种商品推荐的场景便可以基于"余弦相似度"来实现,余弦相似度的核心是仅考虑向量的方向一致,忽略模长的影响。从几何图形上看,向量的外积可以垂直于两个向量组成的平面,当向量平行(共线)时,向量的外积为0。
2025-11-15 16:47:10
406
原创 是它们的详细介绍。以下内容仅适用于 Redis .。 一、单机模式(Single) . 简介 ()最简单的部署方式,仅运行单个 Re ...
SocketWordCount是Flink中的经典示例,它通过Socket接收实时数据流,对数据流中的单词进行计数,并将结果实时输出。在SocketWordCount中,keyBy操作使用了Key Group Partitioning策略,确保相同单词的数据被发送到同一个分区进行处理。System.out.println("客户端已连接,输入要发送的数据(输入'exit'退出):");最后,调用execute方法启动作业。注意,Flink程序是惰性执行的,只有调用execute方法才会真正触发计算。
2025-11-15 16:42:47
251
原创 DeepSeek-R详解
声明了Seq2SeqEncoder(Encoder),其是seq2seq编码器部分的实际定义,其输入是一串原文,然后经过了nn.Embedding,将输入的token序列转换为token-embedding,然后送入nn.GRU,得到了两个值:最后一层rnn的所有时间步的隐藏状态output(shape=num_steps,batch_size,num_hiddens),所有层rnn的最后一个时间步的隐藏状态h_n(shape=num_layers,batch_size,num_hiddens)
2025-11-15 16:38:41
718
原创 heapdump深度利用之信息泄露篇
图形结果:用于生成一个简单的图形结果,图形中会展示所有取样器请求的耗时,单位为毫秒,在图形的底部会以黑色的形式显示每个取样器请求的耗时,会以蓝色来显示所有取样器请求的平均值,会以红色来显示耗时的标准偏差,会以绿色来显示当前的吞吐量,如下图所示,图中的吞吐量表示了所压测的服务器在单位时间内处理的实际请求数,图像结果的展示,可以更加直观的看到每个取样器请求的耗时情况以及观察性能指标曲线的走势来辅助判断可能存在的性能问题。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。
2025-11-15 16:34:10
660
原创 iptables服务详解
考虑去放书的时候移动一定是按照下标递增顺序的,同理,放完书回来也不用回头,所以下标一定单调递减。//a是第二组的初始代价,b是第一组的初始代价。最大的)书,那么它一定可以顺带放路上经过的所有的书。对于第二个问题,比较复杂,我们继续观察性质:注意到,由于这两组的并集是全集,所以。为最大书架编号)个数字,把他划分成两组,求两组内部元素的和的最大值的最小值。
2025-11-15 16:29:14
281
原创 一生一芯学习记录(一):简单介绍 + 建立Verilator仿真环境
SocketWordCount是Flink中的经典示例,它通过Socket接收实时数据流,对数据流中的单词进行计数,并将结果实时输出。在SocketWordCount中,keyBy操作使用了Key Group Partitioning策略,确保相同单词的数据被发送到同一个分区进行处理。System.out.println("客户端已连接,输入要发送的数据(输入'exit'退出):");最后,调用execute方法启动作业。注意,Flink程序是惰性执行的,只有调用execute方法才会真正触发计算。
2025-11-14 14:18:25
470
原创 Ks Pod 资源访问控制策略
声明了Seq2SeqEncoder(Encoder),其是seq2seq编码器部分的实际定义,其输入是一串原文,然后经过了nn.Embedding,将输入的token序列转换为token-embedding,然后送入nn.GRU,得到了两个值:最后一层rnn的所有时间步的隐藏状态output(shape=num_steps,batch_size,num_hiddens),所有层rnn的最后一个时间步的隐藏状态h_n(shape=num_layers,batch_size,num_hiddens)
2025-11-14 14:13:56
524
原创 WeakMap 应用场景与示例
图形结果:用于生成一个简单的图形结果,图形中会展示所有取样器请求的耗时,单位为毫秒,在图形的底部会以黑色的形式显示每个取样器请求的耗时,会以蓝色来显示所有取样器请求的平均值,会以红色来显示耗时的标准偏差,会以绿色来显示当前的吞吐量,如下图所示,图中的吞吐量表示了所压测的服务器在单位时间内处理的实际请求数,图像结果的展示,可以更加直观的看到每个取样器请求的耗时情况以及观察性能指标曲线的走势来辅助判断可能存在的性能问题。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。
2025-11-14 14:09:24
482
原创 一款基于 .NET 开源美观、功能丰富的串口调试工具
考虑去放书的时候移动一定是按照下标递增顺序的,同理,放完书回来也不用回头,所以下标一定单调递减。//a是第二组的初始代价,b是第一组的初始代价。最大的)书,那么它一定可以顺带放路上经过的所有的书。对于第二个问题,比较复杂,我们继续观察性质:注意到,由于这两组的并集是全集,所以。为最大书架编号)个数字,把他划分成两组,求两组内部元素的和的最大值的最小值。
2025-11-14 14:04:33
242
原创 上周热点回顾(.-.)
那二者的区别是啥呢?除了 LangChain4j 的使用复杂之外,源代码量很大,LangChain4j 的文档也不全,要么是没有关键实现代码案例、要么是干脆文档写的都是错的,LangChain4j 的坑比较多,最后只能通过看最新的源码才能解决和使用相关功能,所以 LangChain4j 学习和使用成本是非常高的。ChatModel chatModel = ChatModel.of("http://127.0.0.1:11434/api/chat") //使用完整地址(而不是 api_base)
2025-11-14 13:59:34
410
原创 嵌入式固件升级框架详解与实战经验
具体的才是频繁变化的,所以需要把变化的部分划分出来,使之可以在继承框架下既能重用也能独立变化,而不引发较大的影响,这就是继承的真正价值 —— 它帮助开发者在抽象与细节之间找到平衡,通过自下而上和自下而上的设计方法,引导我们从在局部与整体之间逐步完善对问题的认识。面对问题的时候,首先应该直面你面对的是什么问题,只要明确了问题,然后进行一般性的定性后,抽象也就出来了。比如看到狗、猫、鸟,然后观察它们的行为,随后,我们总结它们有一些共同点,比如都会吃和睡觉,于是抽象出“动物”这个概念,也知道了动物都需要吃和睡。
2025-11-13 16:53:56
389
原创 多智能体微服务实战(/):康威定律在 AI 时代的应用
TRPO 用共轭梯度法求解带约束的优化问题,需要计算 Hessian 矩阵(目标函数的二阶导数)。PPO(Schulman et al., 2017)用一阶优化 + 巧妙的目标函数设计达到 TRPO 的效果,成为深度 RL 和 RLHF 的标准算法。过大(如 10),说明新旧策略差异巨大,重要性采样失效,梯度估计方差爆炸。新策略分布:P("多喝水")=0.5, P("休息")=0.35, P("吃药")=0.15。旧策略分布:P("多喝水")=0.3, P("休息")=0.4, P("吃药")=0.3。
2025-11-13 16:49:43
286
原创 PWN手的成长之路--cgpwn
既然 GapBuffer 采用下标映射实现实际下标和逻辑下标的转换,而在编辑的过程中,某个字符的逻辑下标往往是不断变动的,而其实际下标则要稳定得多,因此完全可以记录实际下标实现高效率的标记管理。由于间隙内的内容实际不可见,当我通过字符串索引获取字符时,需要跳过间隙,此时存在一个下标映射:将获取字符时的逻辑下标映射到所维护字符数组的实际下标。删除时,直接前移起始指针。局部性编辑:在间隙开头插入时,如果间隙不需要扩容,则记录不变,如果是删除,检查并处理实际下标落入间隙区中的下标,移动或删除,平均时间复杂度。
2025-11-13 16:44:21
247
原创 生产事故-Caffeine缓存误用之临下班的救赎
/ 上传路径(类似目录).endpoint("http://localhost:9000") // MinIO 地址。-v /Users/zhangyong/docker/minio/config:/root/.minio:保存配置。-v /Users/zhangyong/docker/minio/data:/data:映射数据目录。
2025-11-13 16:39:36
353
原创 【每日一面】手写防抖函数
/ 上传路径(类似目录).endpoint("http://localhost:9000") // MinIO 地址。-v /Users/zhangyong/docker/minio/config:/root/.minio:保存配置。-v /Users/zhangyong/docker/minio/data:/data:映射数据目录。
2025-11-13 16:33:20
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅