- 博客(104)
- 收藏
- 关注
原创 算法面经常考题整理(3)大模型
一、Prompt 工程(Prompt Engineering)Prompt 工程是通过设计输入文本(Prompt)的形式,引导大模型在不修改参数的情况下,更好地理解任务需求并输出符合预期的结果。核心是 “用自然语言指令或示例‘激活’模型的固有能力”,无需训练,属于 “零样本 / 少样本学习” 范畴。用人类可理解的文本形式,为大模型提供 “任务锚点”,激活其预训练知识,约束其生成逻辑,最终弥合 “模型能力” 与 “任务需求” 之间的 gap。
2025-10-23 20:52:38
880
原创 算法面经常考题整理(1)机器学习
分类任务的核心是让模型输出的 “类别概率 / 得分” 与真实标签一致,损失越小,分类准确性越高。抛硬币单次结果服从伯努利分布,单次得正面的概率为p,得反面为1−p。10 次观测中,7 次正面、3 次反面的似然函数为:L(p∣X)=P(7正3反∣p)=(710)p7(1−p)3其中(710)是组合数(从 10 次中选 7 次正面的方式数),与p无关,最大化时可忽略。
2025-10-23 20:52:10
1006
原创 银行校招知识点突击
摘要:本文系统梳理了银行笔试备考要点,主要内容包括:一、理科考点(增长、比重、平均数等计算技巧);二、文科考点(图形推理、片段阅读解题方法);三、经济金融知识(货币政策工具、商业银行业务等核心概念)。重点提示:考试禁用计算器,需掌握截位直除等速算技巧;图形推理需关注元素分布与特征图形;经济金融部分需区分货币政策与财政政策主体。文章为银行笔试提供全面应试指导,涵盖六大行不同难度特点。
2025-10-18 20:51:03
583
原创 手撕十大排序算法
分区:小于 2 的放左,大于 2 的放右→[1,2,4,3](基准 2 到位)递归左半[1](已有序)和右半[4,3]右半选 3 为基准→分区得[3,4](基准 3 到位)[1,2,3,4]算法时间复杂度(平均)时间复杂度(最坏)空间复杂度稳定性适用场景冒泡排序O(n²)O(n²)O(1)稳定小规模数据选择排序O(n²)O(n²)O(1)不稳定小规模数据,交换成本高时插入排序O(n²)O(n²)O(1)稳定基本有序或小规模数据希尔排序O(n¹·³)
2025-10-17 21:09:49
875
原创 java和python的修饰符@的作用
在 Java 和 Python 中,符号都用于表示,但两者的设计理念和具体作用有较大差异,核心是为代码添加 “元数据” 或 “增强功能”,但实现方式和适用场景不同。
2025-10-16 17:47:39
996
原创 Java.util.Properties类
在 Java 中, 是一个专门用于处理 属性文件(.properties) 的工具类,它继承自 ,主要用于读取和写入以键值对()形式存储的配置信息。属性文件(.properties)是 Java 中常用的配置文件格式(如数据库连接信息、系统参数等), 类提供了便捷的方法来:假设存在一个 文件,内容如下:properties1. 读取属性文件2. 写入属性文件执行后会生成 ,内容如下:properties注意事项 编码问题: 方法默认使用 ISO-8859-1 编码读取
2025-10-16 17:34:05
916
原创 软件工程常用类类型及作用梳理(附电商场景示例)
—— 每个类只做一件事,通过协作完成业务。做笔记时可以重点记 “作用 + 示例”,后续看项目代码时对照着联想,很快就能理解实际用法。,方便你直接复制到笔记软件(如 Notion、Typora)中,要不要试试?以上梳理覆盖了项目中最常用的 8 类,核心逻辑是 “如果需要,我可以帮你把这份梳理整理成一个。
2025-10-16 17:23:53
274
原创 JVM的classpath
三个阶段的 classpath 各自根据项目配置生成” :IDE 不替编译器生成 classpath,编译器不替运行器生成 classpath,三者都独立读取 “项目配置”(pom.xml等)生成对应阶段的 classpath;只是因为配置源头相同,所以三者内容高度一致,且编译阶段的 classpath 验证通过后,运行阶段的 classpath 自然也能匹配(除非运行前临时改了配置)。
2025-10-16 16:39:42
552
原创 Windows环境变量
摘要:输入"java -version"时,Windows会先解析命令,然后按顺序在当前目录和PATH环境变量路径中查找java.exe。找到后启动JVM并传递参数,JVM输出版本信息后退出。若提示"不是命令",说明PATH未配置或JDK未安装;若版本不符,可能是PATH中存在多个java.exe。PATH变量用于定位可执行文件,而JAVA_HOME等变量仅用于存储路径。(149字)
2025-10-16 15:57:38
888
原创 操作系统 句柄
句柄:操作系统给程序的 “资源凭证”,用来安全、间接操作底层资源(文件、网络等)。文件句柄:专门针对文件的句柄,是程序打开文件后,操作系统返回的 “操作文件的凭证”。核心逻辑:程序 → 用句柄向操作系统请求 → 操作系统操作资源 → 返回结果给程序。简单说,句柄就是 “程序和操作系统之间的资源操作中介”,而文件句柄就是 “操作文件的中介凭证”。为啥不直接操作地址 还要套一层句柄的逻辑?不直接操作内存地址而用句柄,核心是为了平衡 “程序易用性” 和 “系统安全性、稳定性”
2025-10-16 11:45:22
363
原创 Java中的两种流
IO 流:管 “内外数据搬运”(比如文件→程序,程序→网络),是 “数据线”。Stream API:管 “内部数据加工”(比如集合过滤、计算),是 “流水线”。两者除了名字都带 “流”,没有任何关联,解决的是完全不同的问题。
2025-10-16 11:29:51
542
原创 内存泄漏与内存溢出
内存泄漏与内存溢出的区别与联系:内存泄漏指无用对象未释放,占用内存逐渐累积;内存溢出则是内存不足导致程序崩溃。泄漏是过程,溢出是结果。泄漏可能引发溢出,但溢出也可能由其他原因导致。此外,并非所有Java对象都有close方法,仅需手动释放资源的对象(如文件流、数据库连接)才实现AutoCloseable接口。普通对象由GC自动回收,无需close操作。
2025-10-15 22:23:09
1071
原创 JVM类的加载
类的初始化段(也称为静态初始化块)是用于在类加载时执行初始化逻辑的代码块,定义方式是在代码块前加static关键字。它属于类级别的初始化,只在类被加载并初始化时执行一次,用于初始化静态变量或执行类级别的预处理逻辑。// 静态变量// 静态初始化块(类的初始化段)static {System.out.println("类初始化段执行");count = 10;// 初始化静态变量// 普通成员变量// 普通初始化块(实例初始化段,不属于类初始化)
2025-10-15 22:12:07
969
原创 PGLRNet论文笔记
摘要: 论文《PGLRNet》提出一种面向遥感图像定向目标检测的新方法,针对固定卷积核特征错位、跨尺度信息损失等问题,设计了姿态引导特征获取模块(DARC)和增强路径特征金字塔网络(ENFPN)。DARC通过可变形卷积动态学习目标姿态并旋转卷积核,解决特征错位问题;ENFPN结合双向路径与注意力机制优化多尺度特征融合。实验表明,该方法在DOTA等数据集上达到SOTA性能(mAP 82.24%),显著提升复杂场景下的检测鲁棒性。核心创新包括旋转卷积核的端到端学习架构及轻量化特征优化机制。
2025-10-13 21:57:25
832
原创 JDBC主键回显:如果同一个会话执行两个sql语句,都要查对应的主键,是不是就会冲突
数据库在主键生成时采用"操作上下文绑定"机制,确保同一会话中多次INSERT操作不会冲突。对于批量插入(同一PreparedStatement多次执行),getGeneratedKeys()会按顺序返回所有主键;对于单次插入(不同PreparedStatement),每次执行后立即获取主键也能准确匹配。数据库通过将主键与具体的PreparedStatement操作绑定,而非全局暂存,确保主键获取的精确性。只要遵循操作后及时获取或批量统一获取的逻辑,就能避免主键冲突问题。
2025-10-13 21:28:19
324
原创 MySql速成笔记6(DQL多表)
摘要:SQL多表连接操作中,JOIN和ON子句决定表间关联逻辑,而SELECT子句仅筛选最终返回字段。垂直合并时主外键顺序不影响INNER JOIN结果,但外连接必须指定ON条件。LEFT JOIN会保留主表所有记录,后续JOIN基于前次结果集执行,原始表别名在中间结果集中全局有效。MySQL先构建包含所有关联字段的中间结果集,再通过SELECT进行列过滤,因此SELECT字段与关联逻辑无关。
2025-10-07 16:07:18
198
原创 MySql速成笔记5(多表关系)
摘要:数据库表关系拆分的核心目的是解决数据冗余问题。常见关系包括:一对一(双向互指)、一对多(单方指向多个)与多对一(多方指向单个)的互逆关系,以及多对多(双向多方互指)关系。这种拆分能优化数据存储结构,确保数据一致性并提高查询效率。
2025-10-06 17:08:48
215
原创 MySql速成笔记4(约束)
数据库约束设计要点:检查约束应避免业务逻辑,以免增加数据库压力;主键推荐但不强制,需保证唯一非空;自增ID不会回填空缺,删除数据后仍按最大值递增;级联动作定义主表操作时子表的响应规则。Unique约束支持单列或多列组合唯一性。
2025-10-06 16:03:00
161
原创 Mysql速成笔记3(单表DQL)
【SQL实用技巧摘要】SQL中通配符应首位使用;NULL参与运算结果恒为NULL;DISTINCT需单独应用。函数使用要点:FIND_IN_SET需两个字符串参数(后者为逗号列表),适用于枚举匹配;IFNULL用默认值替换NULL,确保计算准确性。分页公式为:limit (page-1)*size, size。注意函数参数要求及典型应用场景。(99字)
2025-10-04 20:32:52
619
原创 Mysql速成笔记2(DML)
本文介绍了数据库操作语言(DML)中的基本操作,包括插入、修改和删除数据。插入操作分为全列插入和指定列插入,支持单行和多行插入;修改操作通过UPDATE语句实现,可全表或条件修改;删除操作包括全表删除和条件删除,并对比了DELETE与TRUNCATE的区别。文章提供了创建数据库和表的示例,以及针对学生信息表的各项操作练习,如插入学生数据、修改特定字段、条件删除记录等,涵盖了DML的基本语法和常见应用场景。
2025-10-03 15:53:45
140
原创 Mysql速成笔记1(DDL)
摘要:本文介绍了MySQL数据库和表的DDL操作。主要内容包括:1)数据库的创建、查看、修改和删除,重点讲解了字符集和排序规则的设置;2)数据表操作,涵盖建表语法、数据类型选择(整数、浮点、字符串、时间等类型)和约束条件;3)表结构的修改和删除操作。文中通过图书管理系统和学生表等实际案例,详细说明了如何合理选择数据类型和设置表属性,如自动维护时间的timestamp字段设置。同时强调了操作安全性,如使用IF EXISTS条件避免错误删除。
2025-10-02 20:52:41
203
原创 关系型数据库的ACID
ACID是关系型数据库保障事务完整性的四大核心特性:原子性(Atomicity)确保事务要么全部成功要么全部回滚;一致性(Consistency)保证数据始终符合业务规则;隔离性(Isolation)控制并发事务互不干扰;持久性(Durability)确保已提交事务永久保存。这些特性相互依赖,共同构成数据库的"安全保障体系",适用于金融、支付等对数据可靠性要求高的场景,但会牺牲部分性能。这也是关系型数据库与多数NoSQL数据库的关键区别。
2025-10-01 01:26:28
975
原创 非关系型数据库为什么相较于关系型数据库可以更快的读写?
NoSQL数据库通过简化数据模型、弱化关联关系、采用最终一致性、优化存储结构和 mon 水平扩展等策略,显著提升了读写性能。其核心是通过牺牲关系型数据库的强一致性、复杂事务和结构化关联特性,换取更高效的数据访问。具体表现为:以数据冗余替代关联计算,减少JOIN开销;支持最终一致性降低锁机制负担;利用内存或混合存储减少I/O延迟;通过水平分片分散压力;以及针对特定场景优化索引设计。这种取舍使得NoSQL在需要处理海量数据和高并发的场景下表现更优,但并非完全替代catch关系型数据库,两者形成互补关系。
2025-10-01 00:50:23
789
原创 C++指针笔试题1
摘要: 分析指针声明 char*(*p)[3][6],p 是指向 char*[3][6] 类型二维数组的指针。关键计算结果: sizeof(p):指针大小(32位系统为4字节); sizeof(*p):数组总大小(3×6×4=72字节); sizeof(**p):首行数组大小(6×4=24字节)。 类比一维数组,**p 获取二维数组首行。核心区别: 数组名是编译期标识符,非指针变量; 数组指针(如 int(*p)[5])与指针数组(如 int*p[5])类型不同; int*p 与 int* p 等价,冗余括
2025-09-28 13:05:37
609
原创 __new__和__init__的区别是什么
Python中__new__和__init__是对象创建相关的两个特殊方法:__new__负责实例创建(分配内存),是类方法;__init__负责实例初始化(设置属性),是实例方法。__new__必须返回实例对象,否则__init__不会被调用;__init__则不能有返回值。__new__常用于不可变类型子类化和单例模式等场景,而__init__用于常规的对象初始化。两者协同工作,__new__创建实例后__init__进行初始化。日常开发中__init__更常用,仅需特殊控制实例创建时才重写__new_
2025-09-27 17:12:27
291
原创 8.30美团技术岗算法第三题
本文探讨了计算有序数组所有子数组权值之和的问题,权值定义为使子数组成为连续序列所需插入的最少元素数。最初采用暴力法(O(n³))和动态规划法(O(n²))均因效率不足被淘汰。最终采用数学分解方法,将问题拆解为计算每个元素作为最大值/最小值的贡献,利用单调栈实现O(n)时间复杂度。关键突破在于将权值公式分解为最大值贡献、最小值贡献、长度贡献和常数贡献四部分,并推导出相应的数学公式(如子数组总数公式n(n+1)/2和总长度公式n(n+1)(n+2)/6),显著提升了计算效率。
2025-09-18 22:38:16
788
原创 Java.io.BufferedReader
BufferedReader是Java中高效的字符缓冲输入流类,通过内置缓冲区(默认8192字符)减少IO操作次数,提升读取性能。它提供readLine()等便捷方法,适用于文本文件、控制台输入等场景。使用时需注意:必须关闭流以避免资源泄露(推荐try-with-resources语法),且仅适用于文本数据(非二进制文件)。当数据超过缓冲区大小时,会自动分批次读取,不影响整体读取能力。通常配合FileReader使用,后者负责将文件字节转为字符流。
2025-09-18 22:31:14
759
原创 2025算法八股——深度学习——MHA MQA GQA
摘要:MHA、MQA和GQA是注意力机制的三种变体。MHA通过独立多头计算增强表达能力,但计算开销大;MQA共享键值参数降低计算成本,但表达能力受限;GQA采取分组折中方案,在计算效率和模型性能间取得平衡。MQA通过共享键值参数和广播机制显著减少计算量,提升硬件利用率,适用于推理场景。三种方法各有优劣,选择取决于具体任务需求。
2025-09-15 20:24:15
451
原创 静态语言与动态语言
编程语言可分为静态语言和动态语言,核心区别在于类型检查时机和类型可变性。静态语言(如Java、C++)在编译时确定类型,需显式声明且不可变更,类型错误在编译阶段发现,适合大型项目和高性能场景。动态语言(如Python、JavaScript)在运行时确定类型,无需显式声明且可动态变更,类型错误在运行时暴露,适合快速开发和小型项目。两者与是否编译无关,Python有隐性字节码编译,Java编译为字节码而非机器码,C/C++直接编译为机器码。脚本语言通常用于自动化任务,强调轻量便捷。
2025-09-15 17:05:09
683
原创 2024理想算法岗笔试笔记
本文摘要涵盖三个技术主题:1)指令微调(InstructionTuning)是将基础大语言模型(LLM)通过"指令-响应"数据训练,使其更精准理解人类需求的关键优化步骤;2)0/1损失函数由于非凸、非连续特性,无法使用梯度下降优化,且不区分预测置信度差异;3)相关技术内容来自CSDN博客系列"2025算法八股",涉及大模型开发、机器学习和深度学习优化器等领域。
2025-09-07 16:51:52
267
原创 2025算法八股——深度学习——优化器小结
要理解深度学习中的优化器,核心是从 “如何高效更新模型参数以最小化损失” 这一问题出发,按 “基础→改进→融合” 的逻辑梳理。以下从最简单的优化器开始,逐步深入复杂方案,每个优化器均包含,帮助清晰理解演进脉络。
2025-09-07 16:51:10
1210
1
原创 2025算法八股——机器学习——SVM损失函数
0/1 损失是 “理想但不可用” 的损失函数 —— 其非凸、非连续的特性导致无法高效优化,且不区分置信度的设计与 SVM “最大化间隔” 的目标完全冲突。而 Hinge 等替代损失函数,通过凸性 + 连续性解决了优化难题,通过 **“低置信度惩罚”** 精准匹配了 SVM 的间隔目标,最终成为 SVM 的核心损失函数。这一选择本质是 “任务目标(最大化间隔)” 与 “优化可行性” 权衡后的最优结果。
2025-09-07 16:19:46
967
1
原创 2025算法八股——大模型开发——Agent相关
本文探讨了大语言模型(LLM)语境下的智能体(Agent)概念及其核心工作机制。智能体是基于LLM构建的自主系统,具备感知环境、规划决策、执行行动和反馈调整四项关键能力,能完成复杂的多步骤任务。文章重点解析了"思考-行动-观察"循环这一核心工作流程:思考环节负责任务拆解和规划,行动环节执行具体操作,观察环节收集反馈信息,三者协同实现任务闭环。同时澄清了该循环与DeepSeek"深度思考"的区别:前者是涉及内外交互的系统框架,后者仅指模型内部的单次推理能力。智能体通过这
2025-09-07 15:54:08
996
原创 2025算法八股——大模型开发——指令微调
指令微调是连接 “通用预训练模型” 与 “实用化应用” 的关键桥梁 —— 它通过 “指令 - 响应” 数据的监督学习,让模型从 “被动续写” 转变为 “主动响应人类需求”,是目前大语言模型落地(如企业定制化模型、垂直领域 AI 助手)的核心技术之一。没有指令微调,预训练模型的强大能力难以转化为对人类有用的实际价值。
2025-09-07 15:22:27
866
原创 8.28字节面试测试题分享
这篇文章介绍了如何用Java实现扑克牌的排序功能。程序定义了一个PokerCard类,包含花色枚举和牌面值属性,通过自定义比较器实现排序规则:大王>小王>其他牌(按黑桃>红桃>梅花>方块的花色顺序,以及A>K>Q>J>10>...>2的牌面顺序)。程序支持从文件或控制台输入n张牌,处理后按从大到小的顺序输出。关键点包括枚举类的使用、自定义比较器的实现以及Collections.sort()方法的应用。该示例展示了Java集合框架中比较器接口和
2025-09-05 15:27:31
335
原创 8.30美团技术岗算法第二题
Fisher线性判别器(Fisher Linear Discriminant, FLD)是经典的线性分类方法,通过寻找最优投影方向实现数据分类。其核心思想是最大化类间差异、最小化类内差异,将高维数据投影到一维空间进行分类。FLD具有计算简单、理论清晰的优点,适合高维小样本场景,但仅支持二分类且对异常值敏感。文章详细推导了FLD的数学原理,包括类内散度矩阵和类间散度矩阵的计算,并给出了完整的分类流程。同时对比了FLD与其他线性分类器的差异,介绍了其扩展应用和局限性。最后提供了基于NumPy的FLD实现代码,包
2025-09-02 20:23:59
639
原创 8.30美团技术岗算法第一题
本文对比了BufferedReader+StringTokenizer与Scanner在Java中的输入处理差异,并实现了一个高效的大数运算算法。BufferedReader按行读取需手动分割数据,而Scanner支持直接读取单个数据类型。文中提出的算法使用BigInteger处理大数运算,通过记忆化存储和循环优化来提升性能。对于1-4-2-1的循环模式,采用特殊处理以减少计算量。主程序通过BufferedReader读取输入,调用优化后的solve方法计算结果。该方案适用于需要处理大数和大量运算的场景,能
2025-09-02 18:51:21
227
原创 Java数据结构速成【1】
本文系统介绍了Java中常见的数据结构及其应用场景。主要内容包括:数组(Array)和动态数组(ArrayList)的基本操作和内存特性;链表(LinkedList)的单双向实现及增删改查方法;哈希表(HashMap)的键值对存储机制;栈(Stack/Deque)和队列(Queue)的LIFO/FIFO特性实现;二叉树的结构定义和遍历方式(DFS/BFS)。文章还详细对比了Collection接口及其子接口(List、Set、Queue、Deque)的方法差异,并分析了ArrayDeque作为双端队列同时支
2025-08-26 19:16:12
961
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅