自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(235)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python 虚拟环境与 pipx 详解

核心要点venv是项目开发的基石,必须为每个项目创建。pipx是工具管理的利器,避免全局安装的冲突。两者互补,共同构建干净、可复现的 Python 工作环境。针对您的具体场景数据分析脚本:在项目目录创建.venv,激活后安装pandasmatplotlibseabornjoblib。CLI 工具:用pipx安装jupyterblackflake8等,确保它们互不干扰。PyCharm 配置:确保每个项目都正确指向对应的.venv解释器。下一步如果您需要为某个具体项目配置venv或安装pipx。

2026-04-03 18:11:01 181

原创 Lua 脚本是什么

Lua 是一种小巧、跨平台、可嵌入的脚本语言优势:轻量级、高性能、易集成、热更新、应用广泛一般用法:独立脚本、嵌入主程序、作为插件语言常见场景:游戏开发、服务器、嵌入式、工具定制如果你有实际需求或疑问,可以详细说一下场景,我可以针对性地补充用法或示例。

2026-04-02 15:29:01 398

原创 使用 new 关键字和 Java 反射创建对象的区别

常规开发,用new:当你明确知道要创建哪个类的对象时,永远优先使用new。它更安全、更快、更简单。需要动态和灵活性,用反射:当你需要编写更通用的、与具体类解耦的代码时,比如在开发框架、工具或处理动态配置时,反射是不可或缺的强大工具。简单来说,new是给程序员日常使用的,而反射主要是给框架和底层工具的开发者使用的。在业务代码中滥用反射通常被认为是一种坏味道(code smell),因为它牺牲了太多性能和可维护性。

2026-03-23 20:46:13 390 1

原创 TPS VS QPS

系统每秒能成功处理多少个业务请求/事务,是衡量系统吞吐量、处理能力、并发性能的核心指标。

2026-03-12 14:20:31 57

原创 时间戳是什么

是一个 13 位毫秒值。它在物理意义上代表了距离 1970 年起点已流逝。时间戳的设计哲学在于**“去时区化”**。是实现全球时间对齐的底层协议。其核心逻辑在于建立一个与地理位置无关的。,从而确保全球计算机在同一物理时刻生成的数值完全一致。在数字化协作与分布式系统中,

2026-03-03 14:16:32 259

原创 Idea Generation(如何产生好想法)

也许最重要的是,你要和那些不会因为你说了一个糟糕的点子就让你觉得自己很蠢的人在一起,而且他们自己也绝不会因为说了坏点子而觉得尴尬。事实证明,优秀的创业者对一切都有很多想法,所以如果你想成为创始人却想不出公司点子,你应该先练习如何更好地生成创意。最后,检验一个点子的好方法是:你能否清楚地说明为什么大多数人认为这个点子很糟,而你却知道它为什么好。拥有创意是创业者最重要的品质之一——在经营公司的过程中,你需要不断地产生新的想法。在思考点子的早期,一个很好的问题是:“如果这个点子成功,会不会很大?

2026-03-01 21:42:35 831

原创 AI(Artificial Intelligence) 、ML(Machine Learning)、DL(Deep Learning)的区别

AI 是整座房子ML 是房子里的一个房间所有能让机器变聪明的技术,都叫 AI靠数据训练、自己学习的 AI,才叫 ML如果你想,我还能顺便帮你讲深度学习(Deep Learning)在里面是什么位置。

2026-02-25 20:23:44 339

原创 How to fix your entire life in 1 day 解析

你不需要 365 天去改变整个人生。You need你只需要真正醒过来的那一天。绝大多数人一辈子都在等信号,等动力,等完美时机。但信号就是你对现在的生活感到恶心。动力就是你看见自己能成为谁。完美时机就是现在。这套方法有效,因为它不是让你“更自律”。它让你改变你是谁。当你改变了你是谁,其他一切都会自动改变。你不用“强迫”习惯。Yououtgrow你是成长到超越了过去的你。如果你认真做完这一整天,你的人生将永远不一样。

2026-02-13 15:19:37 1153

原创 贝叶斯公式拆解

我直接把,不讲虚的,每一个符号、每一步都给你讲死,让你。

2026-02-12 19:48:50 479

原创 贝叶斯定理在生活中的应用

先看这事本来有多大概率,再看你看到的证据有多强,最后得出一个更靠谱的新判断。不冲动不被带节奏不被情绪操控不被单一信息忽悠你就是在用贝叶斯活着。

2026-02-12 18:37:52 428

原创 贝叶斯定理

我用的方式,给你把讲透,从公式→含义→例子→应用,一次性看懂。

2026-02-12 18:27:55 399

原创 力扣-3-无重复字符的最长子串

滑动窗口(双指针)是解决“最长无重复子串”类问题的最优思路,时间复杂度OnO(n)On(仅遍历一次字符串);优化技巧:用固定大小的数组替代HashMap存储字符索引,兼顾时间和空间效率(空间复杂度O1O(1)O1关键细节:调整左指针时,必须保证左指针只向右移动(避免回退),且仅当重复字符在当前窗口内时才调整。这道题是滑动窗口的入门经典题,掌握后可以举一反三解决类似的“子串/子数组”问题(比如“最小覆盖子串”),核心是理解“窗口的动态调整逻辑”。

2026-02-10 20:55:00 431

原创 力扣-2-两数相加

模拟手工加法,从个位(链表头)开始相加,处理进位和链表长度不一致的问题;关键技巧:使用虚拟头节点简化链表操作,循环条件覆盖“链表未遍历完”和“最后有进位”两种场景;边界处理:短链表补 0、最后进位新增节点,避免空指针异常。这道题是链表的入门经典题,掌握后能理解链表遍历、虚拟头节点、进位处理等核心考点,后续可以尝试优化空间(比如直接在原链表上修改),但上述解法是最易理解、面试中最推荐的写法。

2026-02-10 20:37:44 380

原创 容器宿主机绑核

容器宿主机绑核(CPU Affinity / CPU Set),是将容器进程上运行、禁止内核跨核调度的资源隔离与性能优化技术,底层依赖Linux实现。

2026-02-10 20:09:28 304

原创 内存带宽的计算方法

理论计算:核心用64bit × 内存标称频率 × 通道数 ÷8 ÷1024,直接得出宿主机内存最大硬件带宽,是规划宿主机性能的基础;实际性能:通过mbw/stream/AIDA64实测,虚拟化宿主机需区分物理层和虚拟机层,实际带宽通常为理论值的60%-90%;关键优化:宿主机需插满对应通道数的内存、避免混插不同规格内存、关闭过度内存超配,才能充分发挥理论带宽。

2026-02-03 17:25:29 788

原创 转义符使用

字符的“默认含义”与“实际需求”冲突时想让“特殊功能字符”变成“字面字符”(如正则的、字符串的想让“普通字符”拥有“特殊功能”(如字符串的\n表示换行)。不同场景的转义符可能不同(如 Shell 用或,HTML 用实体),但核心逻辑一致:通过额外符号告诉解析器“该字符的含义需要改变”。

2026-01-21 20:58:22 634

原创 什么是 Embedding

简单来说,Embedding(嵌入)是将离散的、高维的、难以计算的对象(比如文字、单词、图片、用户ID)转换为连续的、低维的、稠密的实数向量的过程。离散对象(比如单词“苹果”):就像一本字典里孤立的词条,只能知道“苹果”是水果,但无法量化它和“香蕉”“手机”的关系;嵌入向量(比如 [0.23, -0.56, 1.89]):就像把“苹果”放在一张地图上,“香蕉”离它近(向量相似度高),“手机”离它远(向量相似度低),向量的每个维度都代表了这个对象的一个潜在特征(比如“是否是水果”“是否可食用”)。

2026-01-13 11:04:42 699

原创 foreach中使用remove踩坑

foreach循环底层依赖迭代器,直接调用集合remove会导致迭代器检测到“并发修改”,抛出;安全删除集合元素的核心方式:用迭代器的remove方法、倒序 for 循环、或 Stream 过滤;等线程安全集合允许 foreach 中删除,但本质是底层复制数组,性能较低,非并发场景不推荐。

2026-01-13 10:46:09 309

原创 倒排索引是什么

在推荐系统领域,是一种从映射到的数据结构,核心作用是快速检索包含特定特征的物品集合,广泛用于基于内容的推荐、协同过滤的候选集召回等场景。它的设计思路和搜索引擎中的倒排索引一脉相承,但会结合推荐场景的需求做针对性优化。

2026-01-08 13:37:35 633

原创 重构代码如何写提示词

比如「没有 init 方法」「不能改 @Parameter 变量」「依赖 Guava 的 CollectionUtils」这些硬性条件,一定要提前说,否则重构方案可能不符合你的项目规范。如果你有偏好(比如这次的策略模式),直接说「优先用策略模式」,我会在这个方向上深化;如果不确定,也可以说「请推荐合适的设计模式」。的定义,否则我可能会假设不存在的方法(比如。模糊的需求会得到模糊的结果。(可以直接参考这个写法,替换成你的新需求)),导致重构后的代码无法直接用。这类具体目标,我才能精准发力。

2026-01-04 20:25:59 372

原创 Java 中,`1 << 1`

1 << 1的本质是将 1 的二进制左移 1 位补 0,结果为2,等价于1 × 2¹。理解它的核心是掌握“按位左移的补 0 规则”和“左移与 2ⁿ 乘法的关联”,同时注意溢出和位数取模的细节。在实际开发中,左移常用来优化乘法运算或实现位掩码逻辑。

2025-12-19 10:56:04 759

原创 git stash用法

提交一致),以便切换分支或执行其他操作。其本质是将修改存储为一个“储藏栈”(Stack),遵循后进先出(LIFO)原则。是高效管理临时修改的利器,尤其适合多任务切换场景。每个 stash 记录包含分支名、提交哈希和描述。(未提交的变更),使工作区恢复到干净状态(与。若恢复时发生冲突,需手动解决(类似合并冲突)。适用于解决 stash 与当前分支的冲突。:默认不保存未跟踪文件和忽略文件。

2025-11-22 08:29:53 500

原创 主从合并是什么

主从合并的具体含义要结合上下文来看,大多数情况下指的是将从分支的内容合并到主分支,或者将主分支的内容合并到从分支,以保证代码或数据的一致性和完整性。

2025-11-17 13:41:54 359

原创 git revert 2

指定你要保留的父分支。适用于已推送远程仓库、团队协作场景。不会破坏历史,安全可靠。

2025-11-06 10:32:45 383

原创 git revert

git revert是 Git 用来撤销某个已提交(commit)的变更的命令。它不会删除历史记录,而是创建一个新的提交,将指定提交的内容“反向应用”(也就是还原),让代码库回到之前的状态。与git reset不同,revert是安全的,不会丢失历史。git revert是撤销已提交变更的推荐方式,尤其在团队协作、已推送远程的情况下。它不会影响历史,只是新增一个“撤销”提交,让你安全地回滚功能或修复错误。

2025-11-06 10:29:01 528

原创 git cherry-pick

是 Git 中的一个命令,用于将某个特定的提交(commit)从一个分支复制到另一个分支。它不会合并整个分支,而是“挑选”某次提交的内容,应用到当前分支。这就像“挑樱桃”一样,只选你想要的那颗提交。是 Git 中非常实用的命令,让你可以灵活地迁移某些特定的改动到其它分支,适用于补丁、bug 修复等场景,但应谨慎使用。

2025-11-06 10:27:30 545

原创 linux软连接、硬连接

软连接是 Linux 文件系统中强大的工具,可以灵活组织文件结构、简化运维和开发流程。合理使用软连接有助于系统管理、项目部署、数据共享等多方面的工作,但也需注意权限、安全性和链接失效等问题。

2025-10-28 11:06:42 1067

原创 召回的蛇形合并

/ 简单的Item类String id;// 来源标记蛇形合并是一种简单高效的多路召回融合策略,适用于推荐系统的候选集组装环节。上述Java实现可直接用于工业场景,也易于扩展。

2025-10-27 11:34:26 551

原创 log4j配置文件详解

/name:包名或类名(推荐包名,支持所有子包)。level:该 logger 的日志级别。additivity:为 false 时,日志只发给本 logger 指定的 appender,不再向上(root)传递,避免重复打印。

2025-10-23 14:51:52 824

原创 drawio画java的uml的类图时,class和interface的区别是什么

类图中的类直接画三栏矩形,类名正常显示。类图中的接口类名上方加,或类名斜体。方法只写方法签名,无实现。用虚线箭头表示实现关系。Person --实现(虚线带空心三角箭头)--> Printable总结在 draw.io 画 UML 类图时,class和interface的主要区别体现在标注、内容、以及实现/继承关系的连接线上。接口需要用标注,并用虚线箭头表示实现关系;类则用普通矩形,实线箭头表示继承关系。

2025-10-14 16:28:46 445

原创 Java代理模式

代理模式(Proxy Pattern)是一种结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。代理对象在客户端和目标对象之间起到中介作用。

2025-09-23 10:30:48 351

原创 观察者模式

观察者模式(Observer Pattern)定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。

2025-09-19 12:47:25 269

原创 工厂模式VS抽象工厂模式

专注于"怎么创建":关注单一产品的不同创建方式垂直扩展:在同一产品线上增加不同的实现简单直接:一个问题,一个解决方案。

2025-09-17 20:26:30 453 1

原创 设计模式-桥接模式04

桥接模式就是把事物的两个方面(两个变化的维度)分开管理,让它们可以分别自由变化,然后通过一个“桥”把它们连接起来。桥接模式就是把“事物的两个变化点”分开,分别设计,然后通过桥(组合)连接起来,方便自由扩展和组合,避免重复和类爆炸。

2025-09-16 14:07:10 456

原创 设计模式-桥接模式03

抽象部分:指的是系统中“高层逻辑”或“业务需求”层面,比如“消息”是什么、“图形”是什么。它定义了系统的行为和接口,关注的是“做什么”。实现部分:指的是抽象部分的具体实现方式,比如“消息怎么发”、“图形怎么画”。它关注的是“怎么做”。传统面向对象编程中,通常使用继承将抽象和实现结合在一起。abstract class Shape { // 抽象部分// 实现部分void draw() { /* 画圆的具体实现 */ }这种方式,抽象和实现是紧密耦合的。“将抽象部分与实现部分分离”

2025-09-16 14:00:21 288

原创 设计模式-桥接模式01

桥接模式是一种结构型设计模式,它的核心目的是将抽象部分与实现部分分离,使它们都可以独立变化。通过引入桥接模式,可以避免多维度继承带来的类爆炸问题。通俗理解:桥接模式就是把“两个变化的维度”分开管理,通过“桥”进行连接。桥接模式适用于多维度变化的场景,是一种典型的“组合优于继承”的设计思想。它让抽象和实现可以独立扩展,是大型系统架构中常用的模式之一。

2025-09-16 13:55:45 358

原创 设计模式-桥接模式02

抽象部分:指的是系统中“高层逻辑”或“业务需求”层面,比如“消息”是什么、“图形”是什么。它定义了系统的行为和接口,关注的是“做什么”。实现部分:指的是抽象部分的具体实现方式,比如“消息怎么发”、“图形怎么画”。它关注的是“怎么做”。传统面向对象编程中,通常使用继承将抽象和实现结合在一起。abstract class Shape { // 抽象部分// 实现部分void draw() { /* 画圆的具体实现 */ }这种方式,抽象和实现是紧密耦合的。“将抽象部分与实现部分分离”

2025-09-16 13:52:23 467

原创 java类冲突

运行时找不到方法(NoSuchMethodError)类型转换异常(ClassCastException)行为异常(实际运行的不是你预期的代码)这些问题在大型项目中极其难以排查,建议在依赖管理和包命名上严格规范,使用工具及时发现和解决冲突。

2025-09-12 19:59:19 933

原创 类加载的双亲委派机制

中文通常翻译成“双亲委派机制”或“父类委托机制”,但“双亲委派”更常见。这种“层层请求、逐级委派”的方式,就是“双亲委派”。(直译为“父亲委托模型”)来的。这就是“双亲委派”名称的由来。这个名字其实是从英文。

2025-09-11 10:48:17 373

原创 java ClassLoader

ClassLoader(类加载器)是 Java 虚拟机(JVM)用来加载.class文件(字节码)的对象。它负责把类的字节码文件读进内存,并转换成 JVM 可以识别的 Class 对象。简单来说,你写的 Java 代码会被编译成.class文件,运行时由 ClassLoader 加载进 JVM,才能被执行。是 JVM 加载类和资源的工具,决定了类的来源和隔离性。双亲委派机制保证了安全和一致性,防止类被重复加载或被恶意篡改。

2025-09-11 10:43:18 784

Introduction+to+Algorithms.pdf

《Introduction to Algorithms》译作《算法导论》,最为经典的算法入门书之一。得到吴军老师推荐。

2019-07-29

空空如也

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

TA关注的人

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