自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Think

上帝赋予了人类说话的能力,而言语又创造了思想,思想是人类对宇宙的量度

  • 博客(151)
  • 资源 (4)
  • 收藏
  • 关注

原创 动态规划解决背包问题实现

摘要:动态规划(DP)是一种通过分解重叠子问题并存储最优解的算法设计方法,其核心包括重叠子问题、最优子结构和状态转移方程三要素。解决DP问题的通用步骤为:定义状态、初始化、推导转移方程、确定计算顺序和返回结果。以背包问题为例,展示了从二维DP到一维优化的解题逻辑,通过状态转移方程和代码实现,说明了如何计算背包能装下的最大价值。DP通过空间换时间,高效解决多阶段决策问题。

2025-12-22 14:19:46 454

原创 贪心算法解决找零钱问题

贪心算法是一种通过局部最优选择逼近全局最优的高效算法设计方法。其核心思想是每一步都采取当前最优决策,最终组合成整体最优解。文章从四个维度解析贪心算法:1)本质特征:不回溯、不存储历史,仅关注即时最优;2)适用条件:需满足贪心选择性质和最优子结构;3)典型应用场景如找零问题、活动选择等;4)与回溯、动态规划的对比优势。文中以硬币找零为例,展示了贪心策略的具体实现步骤和代码示例,强调验证策略可行性是应用关键。该算法效率通常为O(n)或O(nlogn)。

2025-12-22 14:09:28 527

原创 MySQL数据库Undo日志和Redo日志的区别

MySQL的UndoLog和RedoLog是InnoDB实现事务和崩溃恢复的关键机制。RedoLog通过记录物理修改和预写日志(WAL)确保事务持久性,提供崩溃恢复能力,其配置参数包括日志文件大小和数量。UndoLog用于事务回滚和MVCC实现,记录反向操作以撤销未提交修改,其配置涉及日志数量和表空间位置。两者协同工作,共同保障了数据库的ACID特性,通过不同的日志机制分别处理数据持久化和事务回滚需求,构成了InnoDB存储引擎可靠性的基础。

2025-07-07 14:10:49 495

原创 Java内存溢出排查

四、通过使用dk自带命令jstack获取该java进程的线程快照并输入到文件中: jstack -l <pid> > ./jstack_result.txt 命令(pid为Java进程的id号)来获取线程快照结果并输入到指定文件。jstat -gcutil <pid> 250 20 (其中pid是进程id)# 监控 jvm 的内存使用情况。三、jmap -histo 实时查看JVM对象大小的排序结果。二、jstat -gcutil 查看内存使用情况。一、通过top命令查看内存溢出的进程id。

2024-11-04 14:28:05 1294

原创 Java进程CPU飙高排查

jstack |grep -A 200 (pid为Java进程的id号,tid为线程16进制线程id)使用 top -Hp 命令(pid为Java进程的id号)查看该Java进程内所有线程的资源占用情况。printf "%x\n" tid(tid指线程的id号)将以上10进制的线程号转换为16进制。四、通过jstack命令,查看栈信息,定位到线程对应的具体代码。二、查看当前进程消耗资源的线程PID: top -Hp pid。

2024-11-04 13:58:45 623

原创 Linux删除文件磁盘空间未释放解决办法

工作中经常遇到Linux系统磁盘空间不足,但是删除后较大的日志文件后,发现磁盘空间仍没有被释放。

2024-06-25 13:22:56 4115

原创 Windows Server没有远程桌面授权服务器可以提供许可证解决方案

Windows Server没有远程桌面授权服务器可以提供许可证解决方案

2023-01-28 13:59:18 4249

原创 Java死锁实例代码详解

死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。public class DeadLockDemo { static Book book1 = new Book(); static Book book2 = new Book...

2018-04-08 18:53:42 1552 1

原创 判断回文数(非字符串方式)

设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数。注意:1.偶数个的数字也有回文数1244212.小数没有回文数public class PalindromeNumber { public static void main(String[] args) { ...

2018-04-08 18:17:07 1453 1

原创 Java对象浅析

Java是一门面向对象的编程语言,在Java程序运行的过程中无时无刻都有对象被创建出来。虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化过。如果没有,那就先执行相应的类加载过程。在类加载检查过后,虚拟机就为新生对象分配内存。对象所需内存大小在类加载完成后便可完全确定,为对象分配内存等同于把一块确定...

2018-03-17 15:40:00 372

原创 Java内存解读简易版

运行时的数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。程序计数器程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。每个线程都需要一个独立的程序计数器,这块区域是线程私有的内存。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟...

2018-03-17 10:46:22 438

原创 快速排序Java(指针双向从头尾向中间扫描)

一趟快速排序的过程如下   (1)先从序列中选取一个数作为基准数  (2)将比这个数大的数全部放到它的右边,把小于或者等于它的数全部放到它的左边 一趟快速排序也叫做Partion,即将序列划分为两部分,一部分比基准数小,另一部分比基准数大,然后再进行分治过程,因为每一次Partion不一定都能保证划分得很均匀,所以最坏情况下的时间复杂度不能保

2017-09-19 09:57:57 1120

转载 动态规划的详细解析(01背包问题)

算法分析之动态规划详解先举个例子01背包问题具体例子:假设现有容量15kg的背包,另外有4个物品,分别为a1,a2,a3, a4。物品a1重量为3kg,价值为4;物品a2重量为4kg,价值为5;物品a3重量为5kg,价值为6, a4重6千克,价值为7。将哪些物品放入背包可使得背包中的总价值最大?对于这样的问题,如果如上述所涉及的数据比较少的时候,我们通过列举就能算出来,例如,上边的

2017-05-09 15:39:18 803

原创 最大子数组问题(三种方式,java实现)

最大子数组问题(三种方式,java实现)

2017-04-09 19:04:55 1495 1

原创 最长公共子序列(LCS)

最长公共子序列(LCS)

2017-04-08 10:45:24 539

原创 工厂模式,工厂方法模式,抽象工厂模式 详解

1. 工厂模式1.1 定义简单工厂模式是由一个工厂对象根据收到的消息决定要创建哪一个类的对象实例。1.2 使用场景工厂类负责创建的对象比较少,客户只需要传入工厂类参数,对于如何创建对象(逻辑)不关心。简单工厂模式很容易违反高内聚低耦合的原则,因此一般只在很简单的情况下使用。1.3 例子public interface Shape { public void dra

2017-03-09 10:02:25 20374 2

原创 RAG 学习指南

本文系统介绍RAG(检索增强生成)技术,解析其解决大模型知识截止、幻觉与私有知识缺失的核心动机。通过“先检索、后生成”架构,结合分块、向量化、混合检索、重排与Prompt组装等关键组件,实现精准、可解释的问答。对比微调与长上下文方案,强调RAG在知识更新性、成本与可解释性上的优势。附实践指南,涵盖分块策略、向量数据库选型及评估方法,为落地提供完整路径。

2026-10-10 09:01:56 106

原创 Transformer 学习指南

本文详解Transformer架构核心机制,从RNN瓶颈切入,阐释自注意力如何实现并行计算与长程依赖建模。通过numpy实现逐层前向计算,拆解QKV投影、缩放点积注意力、多头机制与位置编码,揭示“为何每个词能直接看见全序列”及“多头如何捕捉多元语义关系”。强调残差连接与维度一致性是深层堆叠的关键,辅以掩码设计保障生成合理性,全面解答“大模型基石”的结构本质与设计逻辑。

2026-10-10 09:00:54 177

原创 Agent 开发理论与实践

Agent 开发理论与实践

2026-09-16 11:42:10 209

原创 AI 算法核心原理与实现

本文档系统介绍了机器学习中四个基础算法的原理与实现: 梯度下降:核心优化算法,通过负梯度方向迭代更新参数。详细讲解了批量梯度下降、随机梯度下降及小批量梯度下降三种变体,并给出线性回归的Java实现示例。 决策树(ID3算法):基于信息增益的决策树构建方法,包含信息熵计算、特征选择准则及递归构建过程。分析了ID3的局限性及C4.5/CART的改进方案。 K-Means聚类:无监督聚类算法,重点阐述了初始质心选择(K-Means++)、最优K值确定(肘部法则)和不同距离度量方式,提供了完整的算法流程。 朴素贝叶

2026-06-12 17:20:18 781

原创 软考高级系统架构师 —— 复习资料

软考高级系统架构师复习摘要 系统架构设计师考试包含综合知识、案例分析和论文三科。核心内容涵盖计算机系统基础(体系结构、操作系统、存储管理)、架构设计(风格、质量属性、评估方法、设计模式)、软件工程(开发模型、敏捷方法、需求工程、测试)三大领域。重点包括架构质量属性(可用性、性能、安全性等)、ATAM评估方法、23种设计模式的应用场景,以及软件测试的层级分类。备考需掌握理论并熟练应用案例分析技巧,论文需结合实践经验阐述架构设计思路。

2026-06-12 13:35:28 450

原创 物流串线场景下的全源最短路径算法

本文介绍了物流串线场景下的全源最短路径算法——Johnson算法。物流网络可建模为有向带权图,其中可能包含负权边(如返程补贴)。Johnson算法通过"势能重赋权"技术,将含负权边的图转换为非负权图,然后使用高效的Dijkstra算法求解。相比Floyd-Warshall算法,Johnson在稀疏图上具有显著性能优势(O(VE+V²logV))。文章详细阐述了算法原理、实现步骤(包括Bellman-Ford求势能函数、边权重赋、Dijkstra求解和距离还原),并给出了Java实现代码。该算法能有效解决物流

2026-06-12 09:59:06 819

原创 操作系统详解

操作系统是管理计算机软硬件资源的核心程序,由内核和配套软件组成。其主要功能包括资源管理、提供人机界面和应用开发平台。操作系统具有并发性、共享性等特征,可分为六类:批处理系统(单/多道)、分时系统(时间片轮转)、实时系统(快速响应)、网络系统(资源共享)、分布式系统(高级网络功能)和嵌入式系统(微型化、可定制)。嵌入式系统常采用HAL和BSP提高移植性,典型代表有VxWorks、WindowsCE等。

2026-03-06 11:13:27 116

原创 系统工程的生命周期

本文系统阐述了系统生命周期的七个关键阶段:探索性研究阶段(识别需求与创意)、概念阶段(细化需求与解决方案)、开发阶段(构建验证系统)、生产阶段(制造与检验)、使用阶段(系统运行)、保障阶段(持续维护)和退役阶段(系统退出)。每个阶段具有明确目的,需进行系统工程评估,且前期规划直接影响后期实施。该框架为组织提供了全生命周期管理的结构化方法,强调各阶段间的衔接与变更控制,确保系统从概念到退役的完整性和合规性。

2025-12-26 10:08:26 478

原创 UML 5种视图

摘要:系统开发中,不同角色关注不同视角,因此采用多视图描述系统。UML定义了5类视图:1)用例视图(核心)描述功能需求,包含用例图;2)逻辑视图展示系统内部结构和动态交互,含类图、状态图等;3)进程视图处理并发和同步,含状态图、构件图等;4)实现视图展示代码组织,含构件图;5)部署视图定义软硬件架构,含配置图。每个视图面向特定开发角色(客户、开发者、测试者等),共同构成完整的系统描述。(149字)

2025-12-25 13:52:07 379

原创 软考中级-软件设计师-回溯法N皇后问题实现

摘要:回溯法是一种优化暴力搜索的算法,通过"尝试-回退"机制探索所有可能解。以N皇后问题为例,需满足皇后互不攻击的三个约束条件:不同行、列及对角线。算法采用递归框架,用集合存储已占用的列和对角线以实现O(1)时间判断。核心步骤包括:记录当前皇后位置、筛选有效选择、达到终止条件时保存结果。通过剪枝策略(跳过无效列)显著提升效率,最终输出所有合法棋盘布局。该算法完美展示了回溯法在约束满足问题中的应用价值。

2025-12-22 13:55:56 426

原创 跨境电商架构图

2025-07-08 16:48:38 214

原创 Git代码合并错误解决方法

在软件开发过程中,Git 作为常用的版本控制系统,极大地提高了团队协作效率。然而,在进行代码合并时,常常会遇到各种错误,影响开发进度。下面将针对几种常见的 Git 代码合并错误,详细介绍解决方法。

2025-04-20 14:53:13 803

原创 Vue 父子组件之间传值详解

父组件获取子组件的值有两种方式,第一种是使用ref;第二种是使用$emit事件。子组件获取父组件的值有两种方法,一种是使用props,一种是使用$emit和事件监听(父子通信)。

2025-02-10 10:45:32 1842

原创 爬楼梯问题代码

假设你正在爬楼梯,需要n阶才能到达楼顶,每次可以爬1或2个台阶,问有多少种不同的方法可以爬到楼顶。分析:到达n阶楼梯的方法数为到达n-1阶楼梯的方法数与到达n-2阶楼梯的方法数之和。假设 f(n) 表示到达n阶楼梯的方法数,则f(n) = f(n-1) + f(n-2),其中第一阶有一种方法,f(1)=1,第二阶有两种方法,f(2)=2。

2024-11-01 18:24:54 257 1

原创 用户登录错误次数太多锁定账号

每次用户登录时,通过 rangeByScore 查询对应的限制时间范围内错误的的次数,如果次数超过阈值,则限制登录。key可以设置为用户名,value可以设置为UUID,score设置为当前时间戳。当用户登录验证码错误次数太多时,需要限制用户在10分钟之内不能再次登录。1.通过Redis ZSet。

2024-06-25 13:35:45 1290

原创 Centos安装RocketMQ

4.修改broker.conf文件。修改runserver.sh脚本。修改runbroker.sh脚本。创建RocketMQ的配置目录。1.下载RocketMQ。5.启动 namesrv。根据自己机器配置修改。根据自己机器配置修改。6.启动 broker。

2024-03-13 13:38:35 466

原创 CentOS安装MySQL详细教程

Linux安装MySQL教程以及常见问题解决.

2024-03-13 11:28:56 930

原创 远程桌面连接报错(CredSSP加密数据库修正)解决方案

远程桌面连接报错(CredSSP加密数据库修正)解决方案

2023-01-28 13:19:42 537

原创 OAuth 2.0 详解

1.定义OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。2.名词说明Third-party application:第三方应用程序,本文中又称"客户端"(client)。 HTTP service:HTTP服务提供商,本文中简称"服务提供商"。 Resource Ow

2020-06-14 15:51:44 548

转载 怎样回答离职原因

HR问你上一份工作是因为什么离职的,你怎么回答?这是大家都非常在意的一个问题,无论是面试官还是求职者。因为对面试官来说,这意味着能不能给出Offer的问题,而对求职者而言,这意味着能不能顺利拿到Offer的问题。那么我们到底该如何回答这个问题呢?来看大家的答案!在回答这个问题前,我们先看几个代表性的求职者离职的真正原因:离职原因一:老板的问题(不重视设计/没素质没审美/没诚信)@魏琴:老板很奇葩,...

2018-04-16 15:07:45 123245 3

原创 无序(未排序)数组二分查找

二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。但是对于无序数组,我们可以先排序在二分,但还有一种技巧就是结合快排的思想,即每次选择一个关键字,先将比他大的数放在其右边,比他小的数放在其左边,然后比较他和要查找的数的关系,并选择下次迭代的区间。public class BinarySearc...

2018-04-08 18:28:39 7634 3

原创 软件架构读书笔记

软件架构序要学会去看,然后忘掉要学会去听,然后忘掉要学会去做,然后忘掉要学会超越,我们自己不知不觉地设定了事物之间的界限,并把这些界限、层次与逻辑井然的东西称为“系统”。

2017-09-24 09:05:47 596

原创 Java知识点总结

Java知识点总结JVM概述JVM是什么JREJDKJVM是什么关系JVM的生命周期JVM运行原理JVM体系结构JVM相关程序计数器虚拟机栈本地方法栈堆方法区总结直接内存堆与栈的对比内存溢出和内存泄漏内存分配过程对象访问类的加载机制ClassLoader类的加载过程加载链接初始化JVM垃圾回收机制范围要回收哪些区域前提如何判断对象已死引用计数算

2017-05-12 16:34:51 1004

转载 十大编程算法助程序员走上高手之路

算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。快速排序使用分治法(

2017-04-26 22:06:44 663

java各种排序

用java语言写的各种排序,包括冒泡排序,直接插入排序,还有快速排序。

2013-07-14

购物管理系统

一个普通的购物系统,希望对需要的同学有所帮助哦。

2014-09-10

C_编写的QQ+源代码MYQQ源代码

C_编写的QQ+源代码MYQQ源代码,可以下载看看,对你的编程很有帮助。

2014-09-10

Kettle培训手册

很好,很好的资源。Kettle培训手册。如果想学它,就点击下载吧。

2013-07-14

空空如也

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

TA关注的人

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