自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学习路线与网址

本文整理了Java后端开发的核心技术栈与学习资源,涵盖Java基础、集合框架、并发编程、JVM、SSM/SpringBoot、设计模式等核心技术,以及MySQL、Redis等数据库知识。重点推荐数据结构与算法、计算机网络、操作系统等基础学科的学习路线,提供小林coding、代码随想录、菜鸟教程等优质学习网站。针对面试需求,特别推荐B站黑马程序员的MySQL和Java面试专题课程,以及后端训练营的面试资料库。加强技能部分包含Docker、消息队列、SpringCloud等分布式技术,并附有廖雪峰Java教程等

2026-01-28 22:01:43 263

原创 SSM+SpringBoot-基础知识

本文摘要: Spring框架是一个轻量级的Java开发框架,核心思想包括控制反转(IOC)和面向切面编程(AOP)。IOC通过依赖注入(DI)管理对象生命周期,降低耦合度;AOP通过代理模式实现日志、事务等横切关注点的统一管理。Spring Boot基于Spring简化配置,提供自动配置、内嵌服务器和starter依赖管理。MyBatis是ORM框架,通过XML或注解配置SQL映射,支持动态SQL防止注入。MyBatis-Plus在MyBatis基础上提供通用CRUD操作。开发时常用注解如@Controll

2026-01-27 10:33:14 632

原创 小红书MCP工具

通过 Docker 快速部署 + MCP Inspector 可视化调试 + 主流 AI 客户端集成,你可以轻松将小红书运营能力赋予 AI 助手。此方案不仅适用于内容发布,还可扩展至自动搜索热点、监控竞品、刷推荐流等场景。🚀 下一步建议:结合 Claude Code 自动撰写文案 + xiaohongshu-mcp 自动发布,打造全自动内容流水线!

2026-01-27 10:28:40 991

原创 个人网站配置

使用宝塔远程初始化服务器(服务器放行8888端口,安全组-新增策略{入;多个网站管理-二级域名(usercenter.zhangjianling.cn)域名-解析-添加二级域名 usercenter.zhangjianling.cn。域名备案(莱卡云-域名-域名备案)才能通过域名进行访问,否则只能通过ip访问。网站-java项目-添加项目(绑定域名:zhangjianling.cn)配置nginx文件见下方【nginx配置文件示例】代码块。放行项目端口(确保该端口未被使用)域名白名单(莱卡云-域名白名单)

2026-01-27 10:27:29 327

原创 廖雪峰-Java教程-Part02

摘要:Java异常处理可通过throws声明方法可能抛出的异常,调用方需捕获或继续抛出。finally确保代码必定执行。反射机制通过Class实例获取类信息,包括类名、父类等。动态代理无需实现类即可创建接口实例,而泛型可用于编写类型通用的模板代码。这些特性分别涉及异常处理、反射、代理和泛型等Java核心机制。

2025-08-17 17:11:14 365

原创 廖雪峰-java教程-Part01

本文摘要:文章介绍了编程语言的基本分类(编译型与解释型)及Java语言特性,重点讲解了Java版本体系(SE/EE/ME)、开发环境组成(JDK/JRE/IDE)和数据类型规范。详细说明了面向对象编程的核心概念(构造方法、重载重写、继承多态)和访问权限控制(private/protected/public)。特别强调了Java字符串不可变性、接口default方法、内部类实现方式(匿名类/静态类)以及classpath配置要点。对Java特有的"一次编译到处运行"机制(JVM字节码)和打

2025-08-17 11:58:00 667

原创 MySQL教程-重要知识

本文介绍了关系型数据库的基础知识和操作。主要内容包括:1) 关系型数据库核心概念:主键、外键、复合键和索引的作用;2) 数据库和数据表的基本操作语句,包含创建、删除、查看等;3) SQL语言详解:外键约束机制、增删查改语法、SELECT子句参数(LIKE、UNION、ORDER BY等)、连接查询类型;4) 特殊操作如NULL值处理、事务控制、临时表创建和表复制方法。文章系统梳理了关系型数据库的核心技术点,可作为数据库学习和开发的实用参考手册。

2025-08-03 10:59:31 891

原创 代码随想录算法训练营Day10|栈与队列Part01|232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项

本文介绍了使用栈和队列互相实现的算法题解,以及有效的括号、删除相邻重复项等问题。主要内容包括:1. 用双栈实现队列(push直接入栈,pop/peek时转移元素);2. 用双队列实现栈(push直接入队,pop/top时通过队列转移保留最后一个元素);3. 有效的括号解法(使用栈匹配括号对);4. 删除相邻重复项(栈顶比较消除)。最后对比了Java中栈和队列的实现方式,推荐使用ArrayDeque替代Stack,并比较了队列操作的差异。所有解法均通过标准数据结构操作实现,保证了算法的正确性和效率。

2025-07-23 08:30:32 779

原创 代码随想录算法训练营Day35|动态规划Part03|01背包问题 二维、01背包问题 一维、416. 分割等和子集

本文介绍了01背包问题的动态规划解法及分割等和子集问题的应用。首先展示了二维和一维数组两种解法,通过物品重量[1,3,4]和价值[15,20,30]的示例,演示了如何计算最大承重4时的最大价值。在分割等和子集问题中,提出将问题转化为背包问题:判断是否存在子集和等于总和的一半。通过二维DP数组解法,计算是否能找到满足条件的子集。文章还指出了错误的双指针解法,并给出了正确的动态规划实现,包括初始化和状态转移过程。最终通过比较DP数组最后一行与目标和来判断分割可能性。

2025-07-22 15:30:00 445

原创 代码随想录算法训练营Day34|动态规划Part02|62.不同路径、63. 不同路径 II 、343.整数拆分 (可跳过)、96.不同的二叉搜索树 (可跳过)

该文介绍了动态规划在解决不同路径问题和整数拆分问题中的应用。对于不同路径问题,通过初始化边界条件(第一行和第一列)并利用递推公式dp[i][j]=dp[i-1][j]+dp[i][j-1]求解无障碍路径数;当存在障碍物时,需特判障碍物位置。对于整数拆分问题,演示了数学分解法和动态规划两种解法,动态规划通过递推公式dp[i]=max(j*(i-j), j*dp[i-j])求最大乘积。最后还介绍了二叉搜索树数量的动态规划解法,利用卡特兰数的递推关系求解。各解法均强调了状态转移方程的重要性。

2025-07-22 09:55:09 1060

原创 代码随想录算法训练营Day32|动态规划Part01|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

本文介绍了三个动态规划经典问题:斐波那契数列、爬楼梯和最小花费爬楼梯。斐波那契数列通过递推关系F(n)=F(n-1)+F(n-2)求解;爬楼梯问题转化为斐波那契形式,解法类似;最小花费爬楼梯则需在递推中考虑每步的花费,选择最优路径。文中给出了Java实现代码,并总结动态规划解题五步法:定义dp数组、确定递推公式、初始化、遍历顺序和举例验证。这些案例展示了动态规划处理递推问题的通用思路。

2025-07-21 18:44:05 630

原创 代码随想录算法训练营Day9|字符串Part02| 151.翻转字符串里的单词、卡码网:55.右旋转字符串、28. 实现 strStr()、459.重复的子字符串

文章摘要: 本文总结了字符串处理的4个典型题目:1)翻转字符串中的单词,使用双指针和StringBuilder处理;2)右旋转字符串,通过分段反转实现;3)实现strStr()函数,双指针匹配子串;4)判断重复子字符串,通过模式匹配验证。解题时需注意边界条件、空字符串处理和反转技巧,特别是KMP算法在字符串匹配中的高效性。示例代码展示了如何用Java实现这些算法,重点在于双指针的灵活运用和字符串操作的优化技巧。

2025-07-14 22:28:12 776

原创 代码随想录算法训练营Day8|字符串Part01| 344.反转字符串、541. 反转字符串II、卡码网:54.替换数字

本文总结了三个字符串处理问题及解法。1. 反转字符串(344):使用双指针原地交换字符数组元素,空间复杂度O(1),可通过中间变量或位运算实现交换。2. 反转字符串II(541):每2k字符反转前k个,剩余不足k则全反,使用StringBuilder处理字符串修改。3. 替换数字(54):将数字替换为"number",通过遍历字符判断处理。最后总结了String和StringBuilder的常用方法,强调StringBuilder适用于需要多次修改字符串的场景。

2025-07-14 09:56:51 831

原创 代码随想录算法训练营Day7|哈希表Part02| 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

本文总结了四道算法题的解题思路和代码实现: 四数相加II:使用哈希表优化,将四个数组两两分组求和,统计相加为0的组合次数。时间复杂度O(n²),空间复杂度O(n²)。 赎金信:通过数组计数统计杂志字符能否组成赎金信,优化了哈希表实现。时间复杂度O(n),空间复杂度O(1)。 三数之和:采用排序+双指针法,注意去重处理。关键点在于外层循环固定一个数,内层双指针寻找另外两个数。时间复杂度O(n²)。 四数之和:在三数之和基础上增加一层循环,需注意整数溢出问题。通过剪枝或使用long类型避免溢出。时间复杂度O(n

2025-07-14 08:31:58 1980

原创 代码随想录算法训练营Day6|哈希表Part01| 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

本文总结了几道常见的哈希表题目解法。字母异位词判断使用26位数组统计字符频率;数组交集问题通过HashSet存储和查找元素;快乐数问题利用HashSet检测循环;两数之和使用HashMap存储遍历过的数值和索引。最后总结了Set和Map的常用操作方法,包括添加、删除、查找和遍历等。这些题目展示了哈希表在解决字符统计、元素查找和数值匹配等问题中的高效应用。

2025-07-13 16:38:59 907

原创 代码随想录算法训练营Day4|链表Part02| 24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

本文总结了四个链表常见问题的解法:1. 两两交换节点使用虚拟头节点和双指针进行相邻节点交换;2. 删除倒数第N个节点采用虚拟头节点和单次遍历找到前驱节点;3. 链表相交问题通过哈希集合或双指针长度差法解决;4. 环形链表检测使用哈希集合或快慢指针法,后者通过数学推导找到环入口。所有解法都注重代码简洁性和时间复杂度优化,特别是通过虚拟头节点简化边界条件处理。

2025-07-13 15:23:51 586

原创 代码随想录算法训练营Day3|链表Part01|203.移除链表元素、707.设计链表、 206.反转链表

本文总结了链表相关算法题的解题思路。203题移除链表元素通过分类讨论处理头节点情况,使用双指针(pre和cur)遍历删除目标节点;707题设计链表采用虚拟头节点简化操作,实现增删查等功能;206题反转链表使用双指针(pre和cur)配合临时节点实现反转。关键点在于:1)虚拟头节点避免头节点特殊处理;2)双指针法遍历链表;3)注意节点指针的保存与修改顺序。这些方法体现了链表与数组在双指针应用上的相似性。

2025-07-11 21:33:47 367

原创 代码随想录算法训练营Day2|数组Part02|209.长度最小的子数组、59.螺旋矩阵II、58.区间和(kama)

文章摘要: 本文总结了LeetCode三道典型算法题的解题思路:1) 209题使用滑动窗口法求最小长度子数组,对比了优化前后的代码实现;2) 59题通过分层处理生成螺旋矩阵,重点分析边界控制;3) 58题采用前缀和数组优化区间查询。三题均体现了算法优化思想,包括滑动窗口的效率提升、矩阵遍历的边界处理以及空间换时间的预处理策略。代码实现展示了从暴力解法到优化解法的演进过程,强调了算法思维和代码简洁性的重要性。

2025-07-11 20:10:24 385

原创 代码随想录算法训练营Day1|数组Part01|704. 二分查找、 27. 移除元素 、977.有序数组的平方

本文总结了三道经典数组算法题:1. 二分查找(704题):在有序数组中查找目标值,使用左闭右闭区间,通过调整左右指针实现O(logn)查找。2. 移除元素(27题):原地删除等于val的元素,使用双指针交换元素,保证O(1)空间复杂度。3. 有序数组平方(977题):对非递减数组求平方后排序,利用双指针从两端比较平方值,逆序填充新数组。三道题均采用双指针技巧,分别展示了查找、删除和重排的典型解法,适用于有序数组处理场景。

2025-07-11 18:03:19 514

原创 代码随想录算法训练营Day29|贪心算法Part03|134. 加油站、135. 分发糖果、860.柠檬水找零、406.根据身高重建队列

本文总结了三个贪心算法经典问题:1) 加油站问题通过计算油量差额,寻找能完成环路的起点;2) 分发糖果问题采用左右两次遍历,确保相邻孩子评分高的糖果更多;3) 柠檬水找零问题优先使用大面额找零。关键思路是将全局问题分解为局部最优选择,通过简洁的遍历和规则实现高效求解。每个问题都展示了贪心算法的典型应用场景和解题范式。

2025-07-10 19:48:27 1019

原创 代码随想录算法训练营Day28|贪心算法Part02| 122.买卖股票的最佳时机II 、55. 跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和

本文摘要: 【股票买卖问题】通过贪心算法解决股票买卖问题,只要后一天价格高于当天就买入卖出,累计利润。示例:[7,1,5,3,6,4]最大利润为7。 【跳跃游戏问题】计算每个位置能到达的最远索引,若最终能覆盖最后一个位置则返回true。示例:[2,3,1,1,4]可到达,[3,2,1,0,4]不可达。 【最小跳跃次数】类似跳跃游戏,记录跳跃次数。示例:[2,3,1,1,4]需要最少2次跳跃。 【K次取反问题】通过排序和贪心策略,优先取反绝对值大的负数,最后处理剩余K次。示例:[2,-3,-1,5,-4]经2

2025-07-10 17:23:44 745

原创 代码随想录算法训练营Day27|贪心算法Part01| 455.分发饼干、376.摆动序列、53.最大子序和

本文介绍了三个贪心算法经典问题:1) 分发饼干问题,通过排序和双指针匹配满足最多孩子;2) 摆动序列问题,通过保留交替的峰谷值来获取最长摆动子序列;3) 最大子序和使用"连续和为负则重置"策略。这些案例展示了贪心算法"局部最优推导全局最优"的核心思想,强调算法应保持简洁结构,避免为特例累加代码。

2025-07-07 10:50:01 595

原创 Mysql八股-part01

MySQL执行SELECT语句的过程涉及Server层和存储引擎层。Server层包括连接器、查询缓存(MySQL8.0已移除)、解析器(词法/语法分析)、预处理器、优化器(选择索引策略)和执行器。优化器会评估不同索引(主键、二级、覆盖、联合索引等)的查询成本,选择最优方案。事务特性ACID通过undo log(原子性)、锁/MVCC(隔离性)和redo log(持久性)实现。隔离级别从低到高依次为:读未提交(存在脏读)、读提交(不可重复读)、可重复读(默认,部分幻读)和串行化(完全隔离)。索引类型分为逻辑

2025-07-06 17:51:19 973

原创 代码随想录算法训练营Day25|回溯算法Part04| 491.递增子序列、46.全排列、47.全排列II

本文介绍了回溯算法在解决递增子序列和全排列问题中的应用。对于递增子序列问题(491题),重点在于处理重复元素时不能排序,需使用HashSet进行树层去重。全排列问题分为两种情况:46题处理无重复数字时使用used数组标记已选元素;47题处理有重复数字时需先排序,并通过nums[i-1]==nums[i] && !flag[i-1]条件进行树层去重。两题均通过path保存当前路径,当满足条件时加入结果集res。代码实现上推荐使用LinkedList进行高效的增删操作,并展示了两种不同的去重方法

2025-07-05 21:37:05 615

原创 代码随想录算法训练营Day24|回溯算法Part03| 93.复原IP地址、78.子集、90.子集II

摘要: 93.复原IP地址:使用回溯算法分割字符串,验证每个分段是否为0-255且不含前导0,最终生成所有合法IP地址组合。 78.子集:通过回溯遍历数组,收集所有可能的子集(包括空集),无需去重,每个节点状态均需记录。 90.子集II:在78题基础上处理含重复元素的数组,需先排序并通过剪枝跳过同一层重复元素,避免生成重复子集。 三题均基于回溯框架,核心区别在于终止条件、结果收集方式及去重处理。

2025-07-05 20:34:53 2101

原创 代码随想录算法训练营Day23|回溯算法Part02| 39. 组合总和、40.组合总和II、131.分割回文串

文章摘要: 本文讨论了三个回溯算法问题:组合总和(39题)、组合总和II(40题)和分割回文串(131题)。39题允许重复使用元素,解法类似77题组合问题;40题要求去重,需排序后跳过同层重复元素;131题通过分割字符串生成回文子串,使用回溯法检查所有可能分割方式。每个问题都提供了代码实现和关键注意事项,强调回溯算法的应用技巧和去重处理方法。

2025-07-03 17:33:12 622

原创 代码随想录算法训练营Day22|回溯算法Part01| 77. 组合、216.组合总和III、17.电话号码的字母组合

本文总结了三个回溯算法典型问题:组合问题(77)、组合总和III(216)和电话号码字母组合(17)。针对77题,重点讲解了回溯模板和避免结果被清空的技巧;216题在组合基础上增加了求和条件;17题则展示了字符串处理中的回溯应用。文章提供了各题的完整代码实现,并强调了关键注意事项:如结果存储需复制列表而非引用,以及StringBuilder的操作方法。这些题目共享回溯算法的核心思想,通过递归和剪枝解决问题,是理解回溯算法的经典范例。

2025-07-03 13:53:58 726

原创 代码随想录-数据结构与算法基本理解

本文总结了Java数据结构与算法的基础知识,主要内容包括:1) 数据结构部分介绍了数组、链表、哈希表和二叉树的基本概念与实现方式,重点讲解了二叉树的种类(满二叉树、完全二叉树等)和存储方式;2) 算法部分详细阐述了回溯算法的模板和应用实例(组合问题),以及动态规划的基本思路和01背包问题的解决方案;3) 还提供了VScode取消代码自动补全的设置方法。文章旨在帮助读者掌握Java算法题的基础知识框架和解题方法。

2025-07-02 17:03:35 2131

原创 卡码网-java基础课-代码快速入门

本文摘要:Java编程基础指南涵盖了输入输出、数据类型转换、集合框架等核心内容。重点包括:1) Scanner输入与缓冲区处理技巧;2) 基本数据类型转换规则与包装类使用;3) 数组与动态数组ArrayList的区别;4) 字符串操作的String与StringBuilder选择;5) 常用数据结构如LinkedList、HashSet、HashMap的实现与应用;6) 栈和队列的基本操作;7) 编程细节如三元运算符、增强for循环等。文章通过代码示例展示了Java基础语法的关键要点,特别强调了类型安全性和

2025-06-17 10:21:28 1042

空空如也

空空如也

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

TA关注的人

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