刷新
重连更新

博主头像 前言 今天更新了闪断重连,其他比较简单,就客户端麻烦点,要重写很多东西。 用坐标逆向求行进距离 断线重连,可以是恢复是因为我每隔10帧保存一次快照,读取快照中的信息来恢复闪断前的状态。而在快照中没有直接保存Dist(行进距离)的原因是,“绕远路就是近路”(当时没想到)。 总之我们还是先取得敌人的路径 ...

Python 潮流周刊#173(附第 123 期全文):Guido 保荐的 PEP 823 拟给 3.16 加 ?. 与 ?[]

本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 温馨提示: 在微信关注 Python猫,发送数字“9”,即可领取 9 折优惠码,订 ...

2026-10-31 字符编码与乱码:把「乱」拆开看

博主头像 乱码这两个字一直被当成一种"玄学故障",好像只能靠不断改编码碰运气。其实它只有一句话:写的时候用了一张表,读的时候用了另一张表。 我把这句话跑成了字节,看得见的那种。 一、先看这台机器的四个编码参数 JVM = 21.0.12.1 默认 charset = UTF-8 native.encoding ...

Java学习随笔:错误返回为什么不能只剩一句操作失败(2026-10-31)

博主头像 学习 Java 服务开发时,把异常统一转换成“操作失败”,看起来是一种简单整齐的处理方式。调用方不用看到内部细节,接口格式也比较统一。但当所有失败都只剩下同一句话,调用方往往无法判断应该修改输入、稍后重试,还是联系维护人员。今天想整理的,是如何让错误返回既保留必要含义,又不泄漏不该暴露的信息。 可以 ...

战斗更新

博主头像 简单关卡配置 首先,我们要先配置敌人和干员的配置,暂时固定。敌人行动路线的拐点(enemyPath)暂时也固定。 // Vec2 世界坐标,1 单位 = 1 格 type Vec2 struct { X, Y float64 } const ( mapWidth = 9 // 地图宽(格) mapH ...

Java学习随笔:默认值为何也需要明确的业务含义(2026-10-30)

博主头像 学习 Java 业务开发时,默认值经常被当成一个很小的实现细节。字段没有传进来,就补一个零;字符串没有内容,就换成空字符串;配置没有填写,就沿用某个固定数字。这样确实能让程序继续执行,但继续执行并不代表含义正确。今天想整理的,是默认值如何改变输入的解释,以及怎样避免它悄悄隐藏本来需要处理的问题。 可 ...

面试被LeetCode 27(移除元素)问懵?别再用两层 for 循环了:一道“简单题”吃透双指针原地删除,附面试加分话术 + 11 个避坑清单

博主头像 LeetCode27移除元素深度剖析,带你跳出暴力O(n²)误区。详解快慢双指针保序方案、首尾交换优化方案,吃透读写分离、循环不变式,对比两种解法适用场景。配套11条避坑清单、面试高频问答,一套原地压缩模板打通26、283、80等数组双指针经典题,面试刷题必备,持续更新算法面试干货。 ...

STL 标准库和泛型编程

博主头像 前言 C++ 的这个模板有点过于高深了…… bind 一上来的这个就够硬,把之前所有东西都串起来了…… int arr[6]={27,102,40,3,586,72}; std::vector<int,std::allocator<int>>vec(arr,arr+6); std::cout<<st ...

用Python DSL 写轻量数据质检工具

博主头像 平时做经营分析或者跑日报,第一步往往不是画图,而是先面对一份"不太干净"的导出的明细表:重复的单号、位数对不上的手机号、莫名其妙的负数金额、格式乱掉的日期…… 在跑任何分析之前,得先确认数据靠谱。 下面介绍一种简单的做法:用几十行 Python 写一个轻量的数据质量 DSL,把校验规则写成能看懂的话 ...

LeetCode 21 合并两个有序链表:一道 Easy 题,凭什么刷掉一半候选人?

博主头像 LeetCode 21合并两个有序链表,一道Easy面试题,却是检验链表基本功的试金石。本文详解哨兵迭代(O(1)原地合并)与递归两种方案,梳理10个高频踩坑点,附带面试官高频追问、口述模板,延伸Comparator泛化、小顶堆实现K路合并,打通21→88→23→148链表归并学习路线,适合备战秋招... ...

Java学习随笔:多个布尔字段为何容易藏住非法状态(2026-10-29)

博主头像 学习 Java 对象建模时,布尔字段看起来是一种很直接的表达方式:是否已支付,是否已取消,是否已发货,每个问题都能回答是或否。然而,当几个字段共同描述同一个业务过程时,单独看都很清楚的答案,组合起来却可能互相矛盾。今天想整理的,就是怎样发现这些组合问题,并让对象能够表达哪些状态真实存在。 先设想一个 ...

java 多线程开发系列之九:玩转线程池(线程池的简介和简单使用)

博主头像 线程池是什么?顾名思义,就是线程的一个池子,它是java程序执行时对需要调用的线程进行一个预存。是池化技术的代表,除此之外,常用的池化技术还有连接池,字符串常量池等。它们的存在一般是为了解决两个问题:1,降低由于创建或销毁(线程/各种资源连接)的开销。2,方便统一调配和管理池中的资源。 所谓创建/销 ...

Java学习随笔:拆分方法时先找变化的理由(2026-10-28)

博主头像 学习 Java 时,常会听到一个建议:方法不要写得太长。这个建议有助于提醒我们关注复杂度,但如果把它理解为超过若干行就必须拆开,也可能得到另一种难读的代码:每个方法都很短,阅读一次业务却需要来回跳转很多次。今天想整理的,是怎样从职责和变化出发决定方法边界,而不是只盯着代码行数。 可以想象一个计算订单 ...

100 亿条数据如何快速写入 MySQL?从 231 天到 3.5 小时,我把面试官问懵了

博主头像 百亿级数据写入MySQL实战方案,逐条插入耗时高达231天,通过分片并行+LOAD DATA可压到3.5小时内。拆解B+树解释单表2000万行由来,理清假批量坑、导入调参、幂等断点续传、影子表无感切换,附带可直接复用代码与面试口述模板,同时给出架构取舍思路:冷数据未必适合MySQL。 ...

JVM内存区域与栈帧详解

JVM 内存区域与栈帧详解 内容涵盖:运行时数据区、虚拟机栈栈帧、符号引用/直接引用、常量池、操作数栈实例。 目录 JVM 运行时数据区 Java 虚拟机栈 · 栈帧详解 符号引用 vs 直接引用 常量池:class 常量池 / 运行时常量池 / 字符串常量池 操作数栈实例 一、JVM 运行时数据区 ...

Java学习随笔:读陌生代码时先追一条数据的去向(2026-10-27)

博主头像 学习 Java 项目时,打开一个不熟悉的工程,经常会同时看到很多包、接口和实现类。每个名字似乎都值得研究,但如果一开始就逐个阅读,很容易记住一堆局部细节,却仍然说不清项目怎样完成一次业务。今天想整理一个更具体的阅读办法:先选择一条能够描述清楚的输入,追踪它经过哪些变化,最后去了哪里。 例如选择一个查 ...

123···50>