自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA泛型作用域与静态方法泛型使用笔记

实例方法:优先复用类泛型,避免重复声明;静态方法:必须显式声明方法级泛型,无法使用类泛型;泛型名只是占位符<T><R>无本质区别,关键是实际绑定的类型一致;避免遮蔽:实例方法不要重复声明与类泛型同名的方法泛型。如果确实需要方法拥有独立的泛型参数(与类泛型无关),应使用不同的泛型名称(如<R><E>public class Result<T> { // 类级泛型<T>// 方法用独立泛型<R>,不遮蔽类的<T>// 类的<T>不受影响<T>是类的泛型,<R>

2025-11-29 03:21:51 800

原创 单例模式:饿汉式与懒汉式

与对象实例化无关(即使不创建对象,类加载后静态变量也已存在)。对象),每创建一个对象,实例变量就重新初始化一次。补充:懒汉式的单例模式为什么要加final。Java 中成员变量的初始化时机分为。也能运行(只要不主动修改。从语法上看,饿汉式去掉。

2025-11-29 01:13:52 531

原创 多进程与多线程的优缺点及适用场景总结

多进程:胜在 “隔离性” 和 “多核并行能力”,适合 CPU 密集、高稳定需求的场景;多线程:胜在 “轻量性” 和 “通信便捷性”,适合 IO 密集、高并发的场景;看任务瓶颈(CPU/IO)+ 资源需求(隔离 / 共享)。

2025-11-26 21:58:10 378

原创 POJO类的要求

反射能 “知道” 构造器的参数类型、数量等信息,但无法凭空获取参数的具体值—— 而框架创建 POJO 时,既没有参数值的来源,也没有猜测值的规则,因此只能依赖 “无需参数” 的无参构造器先创建实例,再后续赋值。简单说:反射的问题不是 “不知道要传什么参数”,而是 “不知道要传什么值”—— 无参构造器刚好绕开了这个问题。“创建实例” 与 “传递参数” 强耦合,本质是把「对象的构造」和「参数的获取 / 传递」绑死在一起(比如必须通过有参构造器传值才能创建实例)。这种设计的核心坏处是。

2025-11-19 22:48:40 969

原创 用户画像构建的相关步骤与机器学习方法

筛选数据:选取用户的基础属性、行为、偏好等关键维度数据,清洗掉异常值 / 缺失值;划分群体:已知类别直接筛选该类用户,未知类别用 K-Means 聚类分群;挖掘共性:用 SQL/Pandas 统计该群体的特征分布,或用分类模型输出特征重要性;验证共性:把提炼的共同特征(如 “25-35 岁 + 月消费≥2 次”)放回数据中验证,确保该类用户中 80% 以上符合(阈值可调整)。

2025-11-19 14:12:45 594

原创 算法面经常考题整理(2)深度学习

本文探讨深度学习中的核心问题与优化技术:1. 梯度问题分析梯度消失(参数过小/网络过深/激活函数问题)和爆炸(参数过大/网络过深)的原因,提出Xavier初始化、残差结构、BN、LeakyReLU等解决方案。2. 优化方法比较SGD、动量法、AdaGrad、RMSProp和Adam等优化器特性,分析自适应学习率的优势。3. 关键技术详解BatchNorm/LayerNorm的工作原理、标签平滑的正则化机制(通过软化标签抑制过拟合)、CAM/Grad-CAM的可视化原理及其模型解释价值。4. 模型量化阐述FP

2025-11-10 09:26:03 799

原创 浏览器缓存策略

浏览器缓存机制遵循"优先查缓存"原则,所有资源(如图片、JS、CSS、HTML)都会优先检查本地缓存。缓存策略由HTTP头控制,分为强缓存(直接使用未过期的缓存)、协商缓存(向服务器验证缓存有效性)和不缓存三种模式。静态资源通常采用强缓存,动态资源多使用协商缓存。不同刷新方式影响缓存行为:地址栏回车遵循原有缓存规则,F5刷新忽略强缓存但保留协商缓存,Ctrl+F5强制重新下载。常见误区包括认为只有图片会缓存、刷新就会重新下载所有资源等,实际所有资源类型都遵循同一套缓存逻辑。

2025-11-08 22:34:27 797

原创 前后端分离和传统非分离(后端渲染)方案的核心差异

摘要:本文对比了前后端分离与传统后端渲染的核心差异。分离架构(解耦、灵活扩展)适合中大型、高并发、多端适配项目,开发效率高但部署复杂;传统架构(耦合、简单部署)更适合小型、快速交付项目,首屏加载快但扩展性差。从开发效率、部署方式、性能表现等维度分析,分离架构在多端适配和高并发场景优势明显,而传统架构在SEO和首屏速度方面表现更佳。建议根据项目规模、团队分工和业务需求选择方案,初创项目可先采用传统方案快速上线,后期再重构为分离架构。

2025-11-08 21:54:36 739

原创 算法面经常考题整理(3)大模型

一、Prompt 工程(Prompt Engineering)Prompt 工程是通过设计输入文本(Prompt)的形式,引导大模型在不修改参数的情况下,更好地理解任务需求并输出符合预期的结果。核心是 “用自然语言指令或示例‘激活’模型的固有能力”,无需训练,属于 “零样本 / 少样本学习” 范畴。用人类可理解的文本形式,为大模型提供 “任务锚点”,激活其预训练知识,约束其生成逻辑,最终弥合 “模型能力” 与 “任务需求” 之间的 gap。

2025-10-23 20:52:38 908

原创 算法面经常考题整理(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 1069

原创 银行校招知识点突击

摘要:本文系统梳理了银行笔试备考要点,主要内容包括:一、理科考点(增长、比重、平均数等计算技巧);二、文科考点(图形推理、片段阅读解题方法);三、经济金融知识(货币政策工具、商业银行业务等核心概念)。重点提示:考试禁用计算器,需掌握截位直除等速算技巧;图形推理需关注元素分布与特征图形;经济金融部分需区分货币政策与财政政策主体。文章为银行笔试提供全面应试指导,涵盖六大行不同难度特点。

2025-10-18 20:51:03 602

原创 手撕十大排序算法

分区:小于 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 905

原创 java和python的修饰符@的作用

在 Java 和 Python 中,符号都用于表示,但两者的设计理念和具体作用有较大差异,核心是为代码添加 “元数据” 或 “增强功能”,但实现方式和适用场景不同。

2025-10-16 17:47:39 1058

原创 Java.util.Properties类

在 Java 中, 是一个专门用于处理 属性文件(.properties) 的工具类,它继承自 ,主要用于读取和写入以键值对()形式存储的配置信息。属性文件(.properties)是 Java 中常用的配置文件格式(如数据库连接信息、系统参数等), 类提供了便捷的方法来:假设存在一个 文件,内容如下:properties1. 读取属性文件2. 写入属性文件执行后会生成 ,内容如下:properties注意事项 编码问题: 方法默认使用 ISO-8859-1 编码读取

2025-10-16 17:34:05 931

原创 Intellij常用快捷键

2025-10-16 17:33:08 409

原创 软件工程常用类类型及作用梳理(附电商场景示例)

—— 每个类只做一件事,通过协作完成业务。做笔记时可以重点记 “作用 + 示例”,后续看项目代码时对照着联想,很快就能理解实际用法。,方便你直接复制到笔记软件(如 Notion、Typora)中,要不要试试?以上梳理覆盖了项目中最常用的 8 类,核心逻辑是 “如果需要,我可以帮你把这份梳理整理成一个。

2025-10-16 17:23:53 284

原创 JVM的classpath

三个阶段的 classpath 各自根据项目配置生成” :IDE 不替编译器生成 classpath,编译器不替运行器生成 classpath,三者都独立读取 “项目配置”(pom.xml等)生成对应阶段的 classpath;只是因为配置源头相同,所以三者内容高度一致,且编译阶段的 classpath 验证通过后,运行阶段的 classpath 自然也能匹配(除非运行前临时改了配置)。

2025-10-16 16:39:42 560

原创 Windows环境变量

摘要:输入"java -version"时,Windows会先解析命令,然后按顺序在当前目录和PATH环境变量路径中查找java.exe。找到后启动JVM并传递参数,JVM输出版本信息后退出。若提示"不是命令",说明PATH未配置或JDK未安装;若版本不符,可能是PATH中存在多个java.exe。PATH变量用于定位可执行文件,而JAVA_HOME等变量仅用于存储路径。(149字)

2025-10-16 15:57:38 897

原创 操作系统 句柄

句柄:操作系统给程序的 “资源凭证”,用来安全、间接操作底层资源(文件、网络等)。文件句柄:专门针对文件的句柄,是程序打开文件后,操作系统返回的 “操作文件的凭证”。核心逻辑:程序 → 用句柄向操作系统请求 → 操作系统操作资源 → 返回结果给程序。简单说,句柄就是 “程序和操作系统之间的资源操作中介”,而文件句柄就是 “操作文件的中介凭证”。为啥不直接操作地址 还要套一层句柄的逻辑?不直接操作内存地址而用句柄,核心是为了平衡 “程序易用性” 和 “系统安全性、稳定性”

2025-10-16 11:45:22 499

原创 Java中的两种流

IO 流:管 “内外数据搬运”(比如文件→程序,程序→网络),是 “数据线”。Stream API:管 “内部数据加工”(比如集合过滤、计算),是 “流水线”。两者除了名字都带 “流”,没有任何关联,解决的是完全不同的问题。

2025-10-16 11:29:51 551

原创 内存泄漏与内存溢出

内存泄漏与内存溢出的区别与联系:内存泄漏指无用对象未释放,占用内存逐渐累积;内存溢出则是内存不足导致程序崩溃。泄漏是过程,溢出是结果。泄漏可能引发溢出,但溢出也可能由其他原因导致。此外,并非所有Java对象都有close方法,仅需手动释放资源的对象(如文件流、数据库连接)才实现AutoCloseable接口。普通对象由GC自动回收,无需close操作。

2025-10-15 22:23:09 1099

原创 JVM类的加载

类的初始化段(也称为静态初始化块)是用于在类加载时执行初始化逻辑的代码块,定义方式是在代码块前加static关键字。它属于类级别的初始化,只在类被加载并初始化时执行一次,用于初始化静态变量或执行类级别的预处理逻辑。// 静态变量// 静态初始化块(类的初始化段)static {System.out.println("类初始化段执行");count = 10;// 初始化静态变量// 普通成员变量// 普通初始化块(实例初始化段,不属于类初始化)

2025-10-15 22:12:07 982

原创 PGLRNet论文笔记

摘要: 论文《PGLRNet》提出一种面向遥感图像定向目标检测的新方法,针对固定卷积核特征错位、跨尺度信息损失等问题,设计了姿态引导特征获取模块(DARC)和增强路径特征金字塔网络(ENFPN)。DARC通过可变形卷积动态学习目标姿态并旋转卷积核,解决特征错位问题;ENFPN结合双向路径与注意力机制优化多尺度特征融合。实验表明,该方法在DOTA等数据集上达到SOTA性能(mAP 82.24%),显著提升复杂场景下的检测鲁棒性。核心创新包括旋转卷积核的端到端学习架构及轻量化特征优化机制。

2025-10-13 21:57:25 852

原创 JDBC主键回显:如果同一个会话执行两个sql语句,都要查对应的主键,是不是就会冲突

数据库在主键生成时采用"操作上下文绑定"机制,确保同一会话中多次INSERT操作不会冲突。对于批量插入(同一PreparedStatement多次执行),getGeneratedKeys()会按顺序返回所有主键;对于单次插入(不同PreparedStatement),每次执行后立即获取主键也能准确匹配。数据库通过将主键与具体的PreparedStatement操作绑定,而非全局暂存,确保主键获取的精确性。只要遵循操作后及时获取或批量统一获取的逻辑,就能避免主键冲突问题。

2025-10-13 21:28:19 335

原创 MySql速成笔记7(高级特性与新特性)

只要一个业务包含两条以上的修改语句就应该加事物。

2025-10-08 17:02:52 90

原创 MySql速成笔记6(DQL多表)

摘要:SQL多表连接操作中,JOIN和ON子句决定表间关联逻辑,而SELECT子句仅筛选最终返回字段。垂直合并时主外键顺序不影响INNER JOIN结果,但外连接必须指定ON条件。LEFT JOIN会保留主表所有记录,后续JOIN基于前次结果集执行,原始表别名在中间结果集中全局有效。MySQL先构建包含所有关联字段的中间结果集,再通过SELECT进行列过滤,因此SELECT字段与关联逻辑无关。

2025-10-07 16:07:18 205

原创 MySql速成笔记5(多表关系)

摘要:数据库表关系拆分的核心目的是解决数据冗余问题。常见关系包括:一对一(双向互指)、一对多(单方指向多个)与多对一(多方指向单个)的互逆关系,以及多对多(双向多方互指)关系。这种拆分能优化数据存储结构,确保数据一致性并提高查询效率。

2025-10-06 17:08:48 225

原创 MySql速成笔记4(约束)

数据库约束设计要点:检查约束应避免业务逻辑,以免增加数据库压力;主键推荐但不强制,需保证唯一非空;自增ID不会回填空缺,删除数据后仍按最大值递增;级联动作定义主表操作时子表的响应规则。Unique约束支持单列或多列组合唯一性。

2025-10-06 16:03:00 174

原创 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 623

原创 Mysql速成笔记2(DML)

本文介绍了数据库操作语言(DML)中的基本操作,包括插入、修改和删除数据。插入操作分为全列插入和指定列插入,支持单行和多行插入;修改操作通过UPDATE语句实现,可全表或条件修改;删除操作包括全表删除和条件删除,并对比了DELETE与TRUNCATE的区别。文章提供了创建数据库和表的示例,以及针对学生信息表的各项操作练习,如插入学生数据、修改特定字段、条件删除记录等,涵盖了DML的基本语法和常见应用场景。

2025-10-03 15:53:45 147

原创 Mysql速成笔记1(DDL)

摘要:本文介绍了MySQL数据库和表的DDL操作。主要内容包括:1)数据库的创建、查看、修改和删除,重点讲解了字符集和排序规则的设置;2)数据表操作,涵盖建表语法、数据类型选择(整数、浮点、字符串、时间等类型)和约束条件;3)表结构的修改和删除操作。文中通过图书管理系统和学生表等实际案例,详细说明了如何合理选择数据类型和设置表属性,如自动维护时间的timestamp字段设置。同时强调了操作安全性,如使用IF EXISTS条件避免错误删除。

2025-10-02 20:52:41 211

原创 关系型数据库的ACID

ACID是关系型数据库保障事务完整性的四大核心特性:原子性(Atomicity)确保事务要么全部成功要么全部回滚;一致性(Consistency)保证数据始终符合业务规则;隔离性(Isolation)控制并发事务互不干扰;持久性(Durability)确保已提交事务永久保存。这些特性相互依赖,共同构成数据库的"安全保障体系",适用于金融、支付等对数据可靠性要求高的场景,但会牺牲部分性能。这也是关系型数据库与多数NoSQL数据库的关键区别。

2025-10-01 01:26:28 1040

原创 非关系型数据库为什么相较于关系型数据库可以更快的读写?

NoSQL数据库通过简化数据模型、弱化关联关系、采用最终一致性、优化存储结构和 mon 水平扩展等策略,显著提升了读写性能。其核心是通过牺牲关系型数据库的强一致性、复杂事务和结构化关联特性,换取更高效的数据访问。具体表现为:以数据冗余替代关联计算,减少JOIN开销;支持最终一致性降低锁机制负担;利用内存或混合存储减少I/O延迟;通过水平分片分散压力;以及针对特定场景优化索引设计。这种取舍使得NoSQL在需要处理海量数据和高并发的场景下表现更优,但并非完全替代catch关系型数据库,两者形成互补关系。

2025-10-01 00:50:23 805

原创 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 625

原创 __new__和__init__的区别是什么

Python中__new__和__init__是对象创建相关的两个特殊方法:__new__负责实例创建(分配内存),是类方法;__init__负责实例初始化(设置属性),是实例方法。__new__必须返回实例对象,否则__init__不会被调用;__init__则不能有返回值。__new__常用于不可变类型子类化和单例模式等场景,而__init__用于常规的对象初始化。两者协同工作,__new__创建实例后__init__进行初始化。日常开发中__init__更常用,仅需特殊控制实例创建时才重写__new_

2025-09-27 17:12:27 298

原创 8.30美团技术岗算法第三题

本文探讨了计算有序数组所有子数组权值之和的问题,权值定义为使子数组成为连续序列所需插入的最少元素数。最初采用暴力法(O(n³))和动态规划法(O(n²))均因效率不足被淘汰。最终采用数学分解方法,将问题拆解为计算每个元素作为最大值/最小值的贡献,利用单调栈实现O(n)时间复杂度。关键突破在于将权值公式分解为最大值贡献、最小值贡献、长度贡献和常数贡献四部分,并推导出相应的数学公式(如子数组总数公式n(n+1)/2和总长度公式n(n+1)(n+2)/6),显著提升了计算效率。

2025-09-18 22:38:16 793

原创 Java.io.BufferedReader

BufferedReader是Java中高效的字符缓冲输入流类,通过内置缓冲区(默认8192字符)减少IO操作次数,提升读取性能。它提供readLine()等便捷方法,适用于文本文件、控制台输入等场景。使用时需注意:必须关闭流以避免资源泄露(推荐try-with-resources语法),且仅适用于文本数据(非二进制文件)。当数据超过缓冲区大小时,会自动分批次读取,不影响整体读取能力。通常配合FileReader使用,后者负责将文件字节转为字符流。

2025-09-18 22:31:14 905

原创 2025算法八股——深度学习——MHA MQA GQA

摘要:MHA、MQA和GQA是注意力机制的三种变体。MHA通过独立多头计算增强表达能力,但计算开销大;MQA共享键值参数降低计算成本,但表达能力受限;GQA采取分组折中方案,在计算效率和模型性能间取得平衡。MQA通过共享键值参数和广播机制显著减少计算量,提升硬件利用率,适用于推理场景。三种方法各有优劣,选择取决于具体任务需求。

2025-09-15 20:24:15 551

原创 静态语言与动态语言

编程语言可分为静态语言和动态语言,核心区别在于类型检查时机和类型可变性。静态语言(如Java、C++)在编译时确定类型,需显式声明且不可变更,类型错误在编译阶段发现,适合大型项目和高性能场景。动态语言(如Python、JavaScript)在运行时确定类型,无需显式声明且可动态变更,类型错误在运行时暴露,适合快速开发和小型项目。两者与是否编译无关,Python有隐性字节码编译,Java编译为字节码而非机器码,C/C++直接编译为机器码。脚本语言通常用于自动化任务,强调轻量便捷。

2025-09-15 17:05:09 715

原创 2024理想算法岗笔试笔记

本文摘要涵盖三个技术主题:1)指令微调(InstructionTuning)是将基础大语言模型(LLM)通过"指令-响应"数据训练,使其更精准理解人类需求的关键优化步骤;2)0/1损失函数由于非凸、非连续特性,无法使用梯度下降优化,且不区分预测置信度差异;3)相关技术内容来自优快云博客系列"2025算法八股",涉及大模型开发、机器学习和深度学习优化器等领域。

2025-09-07 16:51:52 275

空空如也

空空如也

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

TA关注的人

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