自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode215/347/295 堆相关理论与题目

本文系统讲解了堆数据结构的核心概念、操作实现及其应用场景。首先介绍了堆的完全二叉树特性、数组表示方法及核心操作(上浮、下沉、建堆)。然后通过三个典型题目展开:1)第K大元素问题,比较了小顶堆、大顶堆和快速选择三种解法;2)前K高频元素问题,展示了基于小顶堆+HashMap和桶排序的解决方案;3)数据流中位数问题,详细说明了双堆法的实现策略。文章提供了完整的Java代码实现,分析了各解法的时间/空间复杂度,总结了堆的使用技巧和常见优化方法,并给出了调试建议。最后通过对比表格归纳了三类问题的核心思路,为处理堆相

2025-12-30 11:24:11 729

原创 LeetCode 20/155/394/739/84/42/单调栈核心原理与经典题型全解析

本文系统总结了栈的核心应用,涵盖基础题型和单调栈进阶技巧。基础部分包括有效括号(栈+哈希表)、最小栈(辅助栈)、字符串解码(双栈处理嵌套);单调栈部分详解每日温度(递减栈找更大元素)、柱状图最大矩形(递增栈找边界)、接雨水(递减栈找凹槽)。每道题均提供思路分析、多解法实现及避坑指南,强调栈存索引、手推示例的重要性。核心在于理解栈的三种用途:处理匹配/嵌套问题、扩展功能、优化邻域查找。单调性选择口诀:找更大元素用递减栈,找更小元素用递增栈。通过典型例题剖析,帮助掌握从O(n²)到O(n)的优化思路。

2025-12-27 10:34:13 884

原创 LeetCode136/169/75/31/287 算法技巧题核心笔记

本文总结了5道高频算法题的解题技巧:1. 136题利用异或特性找出唯一数字;2. 169题通过摩尔投票法求多数元素;3. 75题使用三指针法原地排序颜色;4. 31题按字典序找下一个排列;5. 287题将数组转为链表检测环找重复数。每道题都包含核心理论、解题思路、代码实现和复杂度分析,重点讲解了位运算、投票算法、指针操作等技巧,并指出常见错误点和拓展题型。这些解法均满足O(n)时间复杂度和O(1)空间复杂度的要求,适合面试快速复习。

2025-12-26 10:51:50 880

原创 LeetCode 124/543/687/968 树形 DP 四题详细总结

本文总结了树形动态规划(DP)的解题方法,通过四道典型题目展示了树形DP的核心思想:后序遍历获取子树信息,计算局部最优解并更新全局结果,最后向父节点传递所需信息。文章详细分析了每道题目的解题思路、实现代码和易错点,包括最大路径和(LeetCode124)、二叉树直径(LeetCode543)、最长同值路径(LeetCode687)和监控二叉树(LeetCode968)。最后提炼出树形DP的通用模板和四题的对比维度,强调后序遍历、子树信息定义和边界处理的重要性。

2025-12-23 16:00:00 775

原创 LeetCode 121/122/123/309 股票买卖问题核心题型总结

本文总结了4类股票买卖问题的动态规划解法:1. 最多一次交易(LeetCode121):定义持有/不持有状态,买入时仅用初始资金,空间优化至O(1)。2. 无限次交易(LeetCode122):买入时依赖前次卖出利润,可用贪心法累加正差价。3. 最多两次交易(LeetCode123):拆分4个交易状态(1次买入/卖出,2次买入/卖出),分别转移。4. 含冷冻期交易(LeetCode309):新增冷冻期状态,买入需从前两天非冷冻期转移。所有问题均可通过状态机模型和变量滚动实现空间优化,核心是明确交易约束对状态

2025-12-23 07:30:00 1817

原创 LeetCode 62/64/5/1143多维动态规划核心题型总结

本文总结了5道经典多维动态规划题目,涵盖路径问题和子串/子序列问题。主要内容包括: 不同路径问题(LeetCode62):使用二维DP或优化为一维DP/数学公式解法,核心是边界初始化和方向约束 最小路径和(LeetCode64):通过二维DP或原地修改优化,关键是最优路径递推 最长回文子串(LeetCode5):采用二维DP或中心扩展法,重点处理回文对称特性 最长公共子序列(LeetCode1143):基于二维DP或一维DP优化,解决非连续子序列匹配 编辑距离(LeetCode72):通过二维DP或一维DP

2025-12-22 20:50:18 814

原创 LeetCode 300/152/416/32 动态规划进阶题型总结(最长递增子序列→最长有效括号)

本文总结了四道动态规划进阶题目的解题思路,涵盖子序列、子数组、子串三类场景。每道题提供两种解法(基础DP和优化/非DP解法),并分析核心难点与易错点: 最长递增子序列:基础DP解法O(n²)定义dp[i]为以i结尾的最长长度,优化解法O(nlogn)使用贪心+二分维护最小结尾数组; 乘积最大子数组:需同时维护最大/最小乘积以处理负数反转情况,优化解法用变量代替数组降空间复杂度; 分割等和子集:转化为01背包问题,注意总和奇偶判断和一维DP的倒序遍历; 最长有效括号:DP解法分直接配对和嵌套配对两种情况,栈解

2025-12-18 21:40:02 850 1

原创 LeetCode 01 背包 & 完全背包 题型总结

本文系统总结了背包问题的核心理论与典型题目解法。主要内容包括: 背包问题分类:01背包(物品只能选1次)和完全背包(物品可重复选),区别在于遍历顺序(01背包倒序,完全背包正序) 通用解题框架: 问题转化:识别物品、容量、优化目标 状态定义:二维/一维DP数组 初始化基准状态 状态转移方程 按类型确定遍历顺序 典型题目详解: 01背包:目标和(方案数)、分割等和子集(可行性) 完全背包:最少硬币数(最值)、完全平方数(最值)、单词拆分(布尔值) 核心对比: 01背包依赖上一状态,完全背包依赖当前状态 遍历顺

2025-12-17 17:22:26 700

原创 LeetCode198打家劫舍:从回溯到动态规划的优化历程

本文系统解析了打家劫舍问题的四种解法:1)暴力回溯法(O(2^n)时间);2)记忆化搜索(O(n)时间/空间);3)动态规划(O(n)时间/空间);4)空间优化DP(O(n)时间,O(1)空间)。通过状态转移分析,逐步优化时间复杂度与空间复杂度,最终实现仅用两个变量的最优解。核心思路是避免相邻房屋同时被偷,通过记录前i-2和前i-1房屋的最大金额来计算当前最优解。

2025-12-16 11:06:21 954

原创 LeetCode 17/78/131 子集型回溯-电话号码组合/子集/分割回文串

本文系统讲解回溯算法,通过LeetCode三题(电话号码字母组合、子集、分割回文串)对比分析回溯的两种实现方式:隐式回溯(String不可变)和显式回溯(List可变)。核心要点包括:1)终止条件设置;2)状态维护方式;3)避免重复策略;4)结果收集技巧。文章详细拆解每题的解题思路、难点重点及Java实现,并给出优化方案(如DP预处理回文)。最后总结回溯通用技巧:控制选择范围、正确处理边界、适时剪枝优化,强调根据问题特性选择合适的数据结构(可变/不可变对象)来实现高效回溯。

2025-12-15 14:25:46 666

原创 LeetCode 46/51 排列型回溯题笔记-全排列 / N 皇后

本文总结了排列型回溯算法的核心特征和解题方法,重点分析全排列和N皇后两类典型问题。排列型回溯要求所有元素参与排列/放置,需满足不重复/不冲突约束,与子集/组合型回溯存在本质区别。全排列问题通过used数组标记已选元素,N皇后问题则需转化为列/斜线约束。文章对比了三类回溯题型的差异,提供通用解题框架和分题型适配方法,并给出避免常见错误的实用建议。核心在于理解"候选列表选择规则"和"约束条件类型"的差异,掌握暴力枚举+剪枝的本质思路。

2025-12-15 14:20:33 994

原创 LeetCode 77/216/22组合型回溯法-组合 / 组合总和 III / 括号生成)

本文介绍了LeetCode中三道经典回溯算法题目:组合(77)、组合总和III(216)和括号生成(22)。这些题目都采用回溯法的核心思路"选择-递归-回溯",但存在不同特点:组合问题通过控制枚举起点避免重复;组合总和III增加了和约束与剪枝;括号生成则通过左右括号数量约束保证有效性。解题关键在于:1)根据问题特点设计选择分支(循环或条件判断);2)利用约束条件进行剪枝优化;3)正确处理回溯时的状态恢复。这些题目展现了回溯法在解决组合类问题时的灵活应用,通过对比分析可以深入理解回溯算法的

2025-12-14 14:54:06 929

原创 LeetCode 102/103/513 二叉树层序遍历(BFS)三类经典题解题总结

本文总结了二叉树层序遍历的核心思路及三种变体:普通层序遍历(LeetCode 102)通过队列按层处理节点;锯齿形遍历(LeetCode 103)在普通层序基础上按层反转结果;找最底层最左节点(LeetCode 513)可通过逆序入队或二维列表定位实现。关键点在于:使用levelSize固定层边界、保持正确的入队顺序(先左后右)、灵活处理结果。易错点包括空节点判断、队列控制错误等。层序遍历本质是"队列控层+按层处理",所有变种都基于此核心逻辑进行扩展。

2025-12-13 15:00:00 1652

原创 LeetCode 235 & 236 最近公共祖先(LCA)解题总结

本文对比分析了LeetCode 236(普通二叉树LCA)和235(BST LCA)两道经典题目。普通二叉树解法采用后序遍历递归分治,通过验证子树存在性确定LCA,时间复杂度O(n);BST解法利用数值有序性预判LCA位置,实现单向递归剪枝,时间复杂度优化至O(h)。文章详细阐述了两题的解题思路、代码实现、易错点及核心差异,强调BST的有序性如何带来算法优化。236题重点在于递归信号传递,235题关键在于数值比较预判,两者对比体现了数据结构特性对算法效率的影响。

2025-12-13 10:20:26 826

原创 Redis与session

传统Session是Web服务器为解决HTTP无状态性设计的服务器端状态存储机制,本质是服务器内存中的键值对对象,通过sessionId关联用户请求并存储临时状态信息。但其与服务器强绑定,存在分布式共享问题、内存限制等局限性。Redis作为高性能分布式内存数据库,支持多数据结构、过期机制和持久化,可替代传统Session存储。通过设计合理的Key-Value结构(如Hash存储用户信息),Redis实现跨服务器会话共享,解决分布式环境下的登录状态失效问题。相比传统Session,Redis在分布式共享、扩展

2025-12-13 01:00:00 950

原创 LeetCode 98. 验证二叉搜索树 解题总结

本文总结了验证二叉搜索树(BST)的两种主流解法:递归边界约束法和中序遍历法。递归法通过为每个节点划定取值范围(左边界<节点值<右边界)来验证,需注意使用Long类型避免int极值溢出。中序遍历法利用BST中序序列严格递增的特性,有递归和迭代两种实现。两种方法时间复杂度均为O(n),空间复杂度为O(h)。常见易错点包括边界类型错误、BST定义理解偏差等。面试中推荐中序遍历法,其代码简洁直观;若需严格实现BST定义或处理深度大的树,可选用递归边界法或迭代中序遍历法。

2025-12-12 11:44:49 850

原创 LeetCode876/141/142/143 快慢指针应用:链表中间 / 环形 / 重排问题

本文系统解析了快慢指针在链表操作中的四大经典应用:1)定位中间节点(876题),通过2:1速度差实现一次遍历定位;2)检测环(141题),利用相对速度1确保必然相遇;3)寻找环入口(142题),基于数学推导a=c+(n-1)L实现精准定位;4)重排链表(143题),组合快慢指针、反转和合并操作。文章通过"盒子-标签-纸条"模型形象解析底层原理,详细标注代码关键点,并指出常见坑点:如循环条件设置不当、初始位置偏移、未断开链表导致死循环等。强调快慢指针的核心在于速度比设计,2:1是最优比例,

2025-12-11 14:53:54 895

原创 LeetCode 100/101/110/199 对称/平衡二叉树与右视图

本文解析了LeetCode中4道二叉树高频题目的解题思路。100题通过递归分治判断两棵树是否相同;101题将对称树转化为镜像比较问题;110题采用后序遍历结合剪枝技巧判断平衡二叉树;199题通过层序遍历或优先右子树的DFS获取右视图。文章总结了二叉树问题的通用解法:1)递归分治拆解子问题;2)遍历控制记录状态。针对不同场景提供了模板选择建议:子树信息问题用递归,层相关特征用BFS,路径/深度问题用DFS。重点强调了边界条件处理和递归返回值逻辑的清晰性。

2025-12-11 14:52:58 856

原创 LeetCode 83/237/82 链表删除问题-盒子模型

本文通过「盒子-标签-纸条」模型解析三种链表删除场景:1)LeetCode83保留重复元素中的一个(逐个跳过重复节点);2)LeetCode237删除指定节点(无法访问头节点时复制下一节点内容);3)LeetCode82删除所有重复元素(批量跳过重复区间)。统一采用哑节点锚点规避边界问题,通过移动临时标签和修改next指针实现删除,保持不销毁节点的操作原则。模型强调标签定位和纸条修改的核心逻辑,提供完整可运行的代码实现及场景对比表。

2025-12-11 10:46:13 818

原创 LeetCode 206/92/25 链表翻转问题-“盒子-标签-纸条模型”

本文通过"盒子、标签、纸条"的比喻系统讲解链表反转问题。核心观点:1)盒子(节点)是固定实体;2)标签(指针)是移动工具;3)纸条(next)决定连接关系。文章详细解析了三种反转场景:基础反转(逐个修改next指向)、局部反转(定位区间后处理)、K组反转(分组处理并衔接)。每种情况都通过标签移动和纸条修改来实现,本质都是同一套操作逻辑。最后强调反转的本质是修改next方向而非节点本身,掌握这一核心思想即可应对各类反转问题。

2025-12-10 15:03:26 858

原创 LeetCode 34排序数组中查找元素的第一个和最后一个位置-二分查找

摘要:LeetCode34要求在非递减数组中查找目标值的起始和结束位置,时间复杂度需为O(logn)。核心解法是通过二分法复用lowerBound函数:起始位置为第一个≥target的索引,结束位置为第一个≥(target+1)的索引减1。采用左闭右开区间实现lowerBound,代码简洁高效,避免边界问题。相比暴力遍历O(n)和传统双二分法,该解法更优,符合面试要求。需注意target不存在和边界情况的处理。

2025-12-10 07:30:00 700

原创 LeetCode 11盛最多水的容器 & LeetCode 42接雨水-双指针2

本文对比分析了LeetCode两道经典双指针问题:"盛最多水的容器"(11题)和"接雨水"(42题)。两题都基于柱子高度数组,通过双指针将O(n²)暴力解法优化为O(n)。"盛水容器"通过"谁矮移谁"策略,计算宽度与最小高度的乘积;"接雨水"则根据左右最大高度中的较小值移动指针,累加各位置雨水。关键差异在于:前者求单次最大容积,后者求总和;移动依据分别是当前高度和左右最大高度。文章提供了详细代码实现,并强调易

2025-12-08 11:20:41 643

原创 LeetCode 167/15 两数之和与三数之和-双指针1

本文总结了有序数组中寻找两数之和的核心方法——双指针法,并延伸至三数之和等类似问题。关键点包括:1)双指针初始化和移动逻辑;2)与三数之和的关联及转化思路;3)剪枝和去重的具体实现方法。文章提供了完整的解题模板,强调数组有序性作为基础,详细说明了剪枝条件(如提前终止无效循环)和去重技巧(跳过重复元素)。最后以三数之和代码为例,展示了如何结合这些技巧解决实际问题,实现高效且无重复的解法。

2025-12-07 22:28:19 805

原创 链表类力扣刷题总结

本文系统介绍了链表数据结构及其常见算法解法。主要内容包括: 链表基础知识:单链表、双链表和循环链表的结构特点; 核心解题方法:双指针、递归、哈希表和虚拟头节点四种经典技巧; 典型问题分类: 基础操作(反转、合并、删除) 环与相交判断 回文检测 排序重组 数值计算 多链表合并等 每种题型配有典型LeetCode题解,展示了如何运用核心方法解决实际问题。文章强调指针操作的关键性,建议掌握各类问题的解题模板和拆分思路。

2025-11-03 21:53:41 810

原创 Java常用数据结构操作详解

Java集合框架核心知识点总结,包括数组、列表、集合和映射的常用操作与实现。数组(Array)是固定长度容器,介绍静态/动态初始化及核心操作;列表(List)重点讲解ArrayList和LinkedList的初始化和增删改查;集合(Set)说明HashSet、LinkedHashSet和TreeSet的特性及排序操作;映射(Map)详解HashMap等实现类的键值对操作。同时涵盖字符串处理、工具类Collections和Arrays的使用技巧,以及流式编程和注意事项。内容全面,适合快速回顾Java

2025-10-17 10:27:49 764

原创 关于容器Docker

Docker是一种容器化工具,能将应用程序及其依赖打包成独立容器,确保跨平台一致性(Windows/Mac/Linux)。核心概念包括镜像(只读模板)、容器(运行实例)和仓库(镜像存储)。相比虚拟机,Docker更轻量(秒级启动)、隔离且可移植。通过Nginx实例演示了拉取镜像、运行容器等基础操作,并介绍了自定义镜像构建方法(Dockerfile)。Docker有效解决了"开发-生产环境不一致"问题,是环境标准化和快速部署的利器。

2025-10-03 21:43:57 1104

原创 全栈学习 —— 前端(三)Vue框架

本文全面介绍了Vue.js这一渐进式JavaScript框架的核心概念与应用。主要内容包括:1. Vue核心思想:数据驱动和组件化设计;2. 环境搭建:从直接引入到Vue CLI工程化开发;3. 基础语法:数据绑定、指令系统、计算属性等;4. 组件化开发:组件定义、通信机制和插槽使用;5. 底层原理:响应式系统和虚拟DOM;6. 路由管理:VueRouter配置与使用;7. 实战案例:通过待办事项应用演示完整开发流程。文章系统讲解了Vue从入门到进阶的知识体系,并附有详细代码示例,适合不同阶段的开发者学习参

2025-08-23 01:00:00 2487

原创 全栈学习 —— 前端(二)JavaScript

本文系统介绍了JavaScript在前端开发中的核心作用。主要内容包括:1) JavaScript基础语法(变量、数据类型、运算符、流程控制等);2) DOM操作技术(元素选择、内容修改、样式调整、事件处理);3) 异步编程方法(回调函数、Promise、async/await);4) 本地存储机制(localStorage、sessionStorage);5) 通过TodoList项目实战演示综合应用。文章还揭示了JavaScript单线程、事件循环等底层原理,帮助开发者全面掌握这门"前端灵魂&

2025-08-20 01:30:00 906

原创 全栈学习 —— 前端(一)HTML 与 CSS

本文系统介绍了HTML和CSS的基础知识与应用。HTML作为网页的结构骨架,通过标签定义内容元素;CSS则负责页面样式美化。文章详细讲解了HTML文档结构、常用标签(文本、链接、图像、列表、表格、表单等)以及语义化标签的使用,并剖析了浏览器解析HTML的底层原理。在CSS部分,重点介绍了三种引入方式、选择器类型、常用样式属性和布局技术(浮动、Flex、定位),解释了样式渲染机制。最后通过一个个人简介网页项目,综合运用所学知识完成页面搭建,涵盖了头部、个人信息、技能展示、教育经历等模块的实现与样式设计,为前端

2025-08-19 00:00:00 968

原创 全栈学习 ——JavaWeb(八)SpringBoot

SpringBoot通过"约定优于配置"理念,大幅简化Spring应用开发。核心优势包括:1)自动配置(基于@Conditional和SPI机制);2)起步依赖(统一版本管理);3)嵌入式容器(独立运行)。实战演示了快速构建Web应用(HelloWorld)、整合MyBatis(@Mapper注解替代XML配置)及用户管理系统(SSM整合),对比传统Spring开发可减少90%配置量。高级特性支持多环境配置(Profiles)、应用监控(Actuator)等。SpringBoot

2025-08-16 02:00:00 3489 4

原创 全栈学习 ——JavaWeb(七)MyBatis

MyBatis是一款优秀的持久层框架,通过XML/注解将SQL与Java代码分离,简化了JDBC操作。本文详解MyBatis从基础到高级应用:1)对比传统JDBC的冗余问题;2)核心组件与工作流程解析;3)CRUD实现与参数/结果映射;4)动态SQL实现灵活查询;5)关联查询与分页处理;6)底层原理与缓存机制;7)实战用户管理系统开发。MyBatis优势在于SQL可控性强、学习成本低,特别适合需要精细控制SQL和复杂查询的场景。

2025-08-14 01:00:00 1087

原创 全栈学习 ——JavaWeb(六)Spring MVC

本文全面介绍了SpringMVC框架的核心原理与实践应用。作为Spring框架的Web模块,SpringMVC基于MVC设计模式,通过DispatcherServlet等核心组件实现了请求处理的标准化流程。文章详细解析了SpringMVC的优势、工作流程、URL映射机制和参数绑定原理,并提供了从环境搭建到用户注册功能的完整实战示例。此外,还涵盖了拦截器配置、异常处理等高级特性,以及前后端分离开发中与Vue的整合方案。SpringMVC通过松耦合设计和丰富功能极大简化了Web开发,是构建Java Web应用的

2025-08-12 02:00:00 930

原创 全栈学习 ——JavaWeb(五)Spring AOP 与事务

Spring的AOP和事务管理是Java开发中的核心技术。AOP通过动态代理实现横向功能抽取,解决日志、权限等跨模块问题;事务管理则确保数据库操作的ACID特性。本文详细解析了AOP的底层原理(JDK/CGLIB代理)和事务的传播行为、隔离级别等属性,并提供了完整的代码示例和项目实战,展示如何通过@Transactional和@Aspect注解简化开发,实现业务代码与非业务代码分离,提升系统可维护性和数据一致性。

2025-08-09 03:00:00 740

原创 全栈学习 ——JavaWeb(四)Spring 容器(IOC 与 DI)

本文全面解析Spring容器的核心机制,重点介绍控制反转(IOC)和依赖注入(DI)的实现原理。传统开发中存在对象创建耦合问题,而Spring通过反转控制权、自动装配依赖来解决。文章详细讲解Spring底层工作流程:从加载配置、生成BeanDefinition到反射创建对象和依赖注入,并分析单例/多例作用域。同时介绍三种依赖注入方式(构造方法、字段、setter)及适用场景,提供完整实战案例展示分层架构实现。最后总结Spring容器通过解耦对象创建、增强可维护性和可测试性等优势,为Java开发带来革命性改进

2025-08-07 04:00:00 1032

原创 全栈学习 ——JavaWeb(三)请求响应与分层解耦

本文系统介绍了JavaWeb开发中的请求响应机制与分层架构设计。第一部分详细解析了Web交互的底层原理,包括TCP/IP协议确保可靠传输、HTTP协议规范数据格式,以及Servlet处理表单、JSON和路径参数三种请求方式的实现方法。第二部分重点阐述分层解耦的最佳实践,通过三层架构(表现层、业务层、数据访问层)重构订单功能案例,展示了如何通过接口和依赖注入降低耦合度。文章强调请求响应是Web交互的基础流程,分层解耦是保障代码可维护性的核心思想,两者共同构成了JavaWeb应用开发的关键技术体系。

2025-08-03 11:36:30 1110

原创 全栈学习 ——JavaWeb(二)Web 服务器

本文系统介绍了Web服务器在JavaWeb开发中的核心作用与工作原理。从计算机网络基础入手,详细解析了TCP/IP协议栈、HTTP协议等底层支撑技术,重点阐述了Web服务器的三大核心功能:运行Java组件、解析HTTP协议和部署Web应用。以Tomcat为例,深入剖析了连接器与容器的协作机制,以及HTTP请求处理的完整生命周期。通过表单提交案例,展示了从浏览器到服务器的全流程交互。文章还对比了主流Web服务器特性,提供了Tomcat安装与部署的实战指南。理解这些知识有助于开发者掌握Web应用的核心运行机制,

2025-07-29 09:00:00 1234

原创 全栈学习 ——JavaWeb(一)基础核心技术 Servlet、JSP 与 JSTL

本文系统介绍了JavaWeb开发中的三大核心技术:Servlet、JSP和JSTL(搭配EL)。Servlet作为底层核心,负责处理HTTP请求和响应,其生命周期包括初始化、服务和销毁三个阶段。JSP则允许在HTML中嵌入Java代码,实现动态网页功能,但存在代码混杂的问题。JSTL和EL通过标签和表达式简化了JSP开发,使页面更清晰易维护。三者在实际开发中分工协作:Servlet处理业务逻辑,JSP负责页面展示,JSTL+EL提供便捷的操作方式,共同构建完整的JavaWeb应用。文章通过代码示例详细演示了

2025-07-27 16:00:00 787

原创 全栈学习 ——javaSE(六)JDBC 与连接池

本文全面解析了Java数据库开发中的两大核心技术:JDBC和连接池。JDBC作为Java操作数据库的标准API,通过DriverManager、Connection、Statement和ResultSet等核心组件实现数据库交互,重点介绍了PreparedStatement防SQL注入机制和资源管理的最佳实践。连接池技术部分深入分析了传统JDBC的性能瓶颈,详细讲解了HikariCP和Druid两大主流连接池的实现原理、配置参数和使用方法,并提供了完整的工具类封装方案。文章还对比了不同连接池的特性,为开发者

2025-07-24 17:25:53 864

原创 全栈学习 ——javaSE(六)泛型、反射与注解

摘要: 本文系统介绍了JavaSE中泛型、反射与注解三大核心技术。泛型通过编译时类型检查确保类型安全,支持代码复用;反射允许运行时动态获取类信息并操作私有成员,是框架设计的核心;注解作为元数据标记代码元素,配合反射实现标记-解析逻辑。三者共同构成Java框架开发的基础:泛型保障类型安全,反射提供动态能力,注解简化配置。文章详细讲解了各项技术的核心概念、基本用法、应用场景及相互关系,并配有代码示例说明实际应用。

2025-07-23 07:00:00 5944 2

原创 全栈学习 ——JavaSE(五)异常处理、枚举、Lambda 表达式

本文介绍了Java编程中的三个核心进阶特性:1. 异常处理机制,包括try-catch-finally结构、异常分类体系以及自定义异常的实现方法;2. 枚举类型的使用,涵盖基本定义、属性方法扩展以及接口实现等高级特性;3. Lambda表达式和函数式编程,详细说明了语法规则、内置函数式接口、集合操作应用以及方法引用等优化技巧。这些特性共同提升了Java代码的健壮性、可读性和简洁性,是Java开发者必须掌握的重要编程范式。

2025-07-22 01:00:00 661

数据结构知识总结与结构网图

资源描述: 该资源是一份关于数据结构知识的总结与结构网图。它包含了数据结构的内容概要、适用人群、使用场景及目标。 内容概要: 该资源涵盖了常见的数据结构,例如数组、链表、栈、队列、树、图等。每种数据结构都有详细的说明,包括定义、特点、操作和应用场景等。此外,还包括了常用的数据结构算法,如查找、排序和遍历等。该资源以简明易懂的方式呈现,旨在帮助读者快速掌握数据结构的基本理论和实际运用。 适用人群: 该资源适用于计算机科学、软件工程、数据科学等相关专业的学生和从业人员。它也适合对数据结构感兴趣的自学者。读者需要具备一定的编程基础,熟悉至少一种编程语言(如C++、Java、Python等)。 使用场景及目标: 该资源适用于以下场景和目标: 学习辅助: 该资源提供了一个系统化的学习框架,可以帮助读者深入理解数据结构的原理和实践。读者可以通过学习资源中的示例代码和练习题,提升自己的编程和问题解决能力。 面试准备: 数据结构是计算机科学面试中的常见考点。该资源整理了常见的数据结构问题和解决方法,读者可以通过学习和练习,提高在面试中的竞争力。

2023-08-14

web前端设计大作业-简易淘宝网设计,含项目完整代码、实验报告

该资源是关于Web前端设计的大作业,是一个简易的淘宝网站设计项目。它包含了项目的完整代码和实验报告。 内容概要: 该项目是一个仿照淘宝网的简易设计,实现了基本的电商功能。项目采用了HTML、CSS和JavaScript等前端技术进行开发。页面布局、商品展示、购物车管理、用户登录等功能都得到了实现。项目代码结构清晰,注释详细,方便理解和修改。 适用人群: 该资源适用于对Web前端开发有一定了解的学生和从业人员。读者需要具备HTML、CSS和JavaScript等前端基础知识,了解网页布局和交互设计的基本原理。此外,对电商网站的设计和功能实现有一定的了解也会更有帮助。 使用场景及目标: 该资源适用于以下场景和目标: 学习参考: 该项目提供了一个实际的Web前端设计案例,读者可以学习其中的代码实现和设计思路。通过阅读代码和实验报告,理解如何设计网页布局、处理用户交互、实现购物车等核心功能。 课程作业: 该项目适合作为Web前端相关课程的实践作业。学生可以基于该项目进行二次开发,增加新的功能或改进现有功能,提升自己的编码和设计能力。

2023-08-14

FPGA课程设计:低通滤波器设计,含源码、设计文件、仿真文件

内容概要: 这个资源是一个FPGA课程设计项目,旨在通过设计实现一个低通滤波器。该项目提供了低通滤波器的源码、设计文件和仿真文件,帮助学生学习和实践FPGA数字信号处理中的滤波器设计和实现。 该资源的内容概要如下: 源码:包含低通滤波器的Verilog或VHDL源代码文件。这些源码描述了低通滤波器的结构、滤波算法以及控制模块等功能模块。 设计文件:包括FPGA综合和实现所需的约束文件,用于指定时钟频率、引脚分配以及滤波器参数等信息。 仿真文件:提供了对低通滤波器进行功能仿真和时序仿真的测试文件。这些文件可以用于验证滤波器的正确性和性能,以及优化设计。 适用人群: 这个资源适用于以下人群: FPGA学习者:对于正在学习FPGA的学生或爱好者,本资源提供了一个具体的项目示例,可以帮助他们理解数字信号处理中的低通滤波器原理,并学习如何在FPGA上实现滤波器。 数字信号处理领域的学生和研究人员:对于对数字信号处理有兴趣的学生和研究人员,该资源提供了一个实践机会,深入了解滤波器设计和数字信号处理在FPGA上的应用。 工程师和科研人员:已经具备一定FPGA设计经验的工程师和科研人员

2023-07-30

FPGA课程设计:自动售货机工程文件,含源码、设计文件和仿真文件

标题:FPGA课程设计:自动售货机工程文件 内容概要: 这个资源是一个完整的FPGA课程设计项目,其中包含了自动售货机的源码、设计文件和仿真文件。这个项目旨在帮助学生通过实践应用FPGA设计知识,理解数字电路设计和实现。 该资源的内容概要如下: 源码:包含自动售货机的Verilog或VHDL源代码文件。这些源码描述了自动售货机的各个模块,如货架控制、货币接收、货币找零等。 设计文件:包括FPGA综合和实现所需的约束文件,用于指定时钟频率和引脚分配等信息。 仿真文件:提供了对自动售货机进行功能仿真和时序仿真的测试文件。这些文件可以用于验证设计的正确性和性能。 适用人群: 这个资源适用于以下人群: FPGA学习者:对于正在学习FPGA的学生或爱好者,本资源提供了一个实际的项目示例,可以帮助他们巩固并应用所学的数字电路设计技能。 教育机构:教育机构可以将这个自动售货机项目作为FPGA课程的设计项目,让学生通过完成该项目来提高他们的实践能力和团队合作能力。 工程师和研究人员:已经具备一定FPGA设计经验的工程师和研究人员

2023-07-30

FPGA学习资源:Bassy3开发版使用指南及常见设计

内容概要: 这个资源是一份关于Bassy3开发版的使用指南及常见设计示例集合,旨在帮助学习者快速上手并深入理解FPGA开发以及Bassy3开发板的使用。 该资源的内容概要如下: Bassy3开发版介绍:提供对Bassy3开发版的详细介绍,包括硬件配置、输入输出接口、主要组件和扩展接口等。这个部分将使学习者熟悉Bassy3开发板的功能和特性,为后续的学习打下基础。 开发环境设置:提供了在不同操作系统上配置FPGA开发环境的步骤和注意事项。学习者可以按照指南进行环境设置,确保能够顺利进行后续的设计和开发工作。 使用指南:介绍了Bassy3开发版的基本用法,包括项目创建、代码编写、编译综合、下载和调试等流程。通过详细的步骤说明和实例演示,学习者可以了解如何使用Bassy3开发板进行FPGA开发。 常见设计示例:提供了一些常用的设计示例,如LED控制、数码管显示、按键输入、蜂鸣器控制等。每个示例都附带详细的代码解析和硬件连接说明,学习者可以通过这些示例进行实践和深入理解FPGA设计技术。 适用人群: 这个资源适用于以下人群:FPGA初学者

2023-07-30

FGPA课程设计:示波器与显示器的综合设计,含源码、设计文件、仿真文件

内容概要: 这个资源是一个FPGA课程设计项目,旨在通过设计实现一个示波器并将波形数据显示在显示器上。该项目提供了源码、设计文件和仿真文件,帮助学生学习和实践FPGA数字信号处理和显示技术。 该资源的内容概要如下: 源码:包含示波器与显示器综合设计的Verilog或VHDL源代码文件。这些源码描述了示波器的数据采集、信号处理和显示控制等功能模块。 设计文件:包括FPGA综合和实现所需的约束文件,用于指定时钟频率、引脚分配以及显示器接口等信息。 仿真文件:提供了对示波器与显示器功能进行功能仿真和时序仿真的测试文件。这些文件可以用于验证设计的正确性和性能。 适用人群: 这个资源适用于以下人群: FPGA学习者:对于正在学习FPGA的学生或爱好者,本资源提供了一个实际的项目示例,可以帮助他们理解数字信号处理原理,并学习如何将处理后的波形数据显示在屏幕上。 教育机构:教育机构可以将这个示波器与显示器综合设计项目作为FPGA课程的实践项目,让学生通过完成该项目来提高他们的数字信号处理和显示技术能力。 工程师和研究人员:已经具备一定FPGA设计经验的工程师和研究人员

2023-07-30

FPGA课程设计:蜂鸣器设计,可以演奏歌曲《起风了》,含工程文件(源码、设计文件、仿真文件、xdc文件)

内容概要: 这个资源是一个FPGA课程设计项目,旨在通过设计实现一个蜂鸣器来演奏歌曲《起风了》。该项目提供了源码、设计文件、仿真文件和XDC文件,用于帮助学生学习和实践FPGA数字音频处理的知识。 该资源的内容概要如下: 源码:包含蜂鸣器演奏歌曲《起风了》的Verilog或VHDL源代码文件。这些源码描述了将音乐数据转换为蜂鸣器频率和持续时间的逻辑控制。 设计文件:包括FPGA综合和实现所需的约束文件,用于指定时钟频率和引脚分配等信息。 仿真文件:提供了对蜂鸣器演奏功能进行功能仿真和时序仿真的测试文件。这些文件可以用于验证设计的正确性和性能。 XDC文件:包含了与FPGA引脚约束相关的信息,用于确保设计中的信号正确映射到FPGA芯片上的物理引脚。 适用人群: 这个资源适用于以下人群: FPGA学习者:对于正在学习FPGA的学生或爱好者,本资源提供了一个实际的项目示例,可以帮助他们理解数字音频处理原理,并学习如何将音乐数据映射到蜂鸣器的控制信号。 教育机构:教育机构可以将这个蜂鸣器设计项目作为FPGA课程的实践项目,让学生通过完成该项目来提高他们的数字音频处理和FPGA设计能力。

2023-07-30

FPGA实验:PWM信号调制器设计,含实验所有工程文件

内容概要: 这个资源是一个FPGA实验报告,涵盖了PWM(脉宽调制)信号调制器的设计与实现。它提供了详细的实验报告和实验所需的工程文件,帮助学生学习和实践FPGA PWM信号调制器的设计原理与实际应用。 该资源的内容概要如下: 实验报告:该实验报告首先介绍了PWM信号调制器的背景和应用场景,然后详细说明了设计思路和系统架构。接下来,报告描述了关键模块的设计与实现,包括计数器、比较器和输出控制等。实验报告还包含了功能验证和性能分析的结果,以及对设计过程的分析和总结。 实验工程文件:该资源还提供了实验所需的工程文件,包括VIVADO工程文件和相关源代码。学生可以直接导入这些工程文件到VIVADO开发环境中,进行仿真、综合和实现流程,并在FPGA开发板上验证PWM信号调制器的功能。 相关资料:为了帮助学生更好地理解和掌握PWM信号调制器的设计与实现,该资源提供了相关的参考资料,如仿真波形文件和参考文献。学生可以使用这些资料进行进一步的仿真验证、时序分析,以及深入研究与拓展实验项目。

2023-07-30

FPGA实验报告:序列发生器,含实验工程文件,VIVADO

内容概要: 这个资源是一个FPGA实验报告,涵盖了序列发生器的设计与实现。它提供了详细的实验报告和实验所需的工程文件,帮助学生学习和实践FPGA序列发生器的设计原理与实际应用。 该资源的内容概要如下: 实验报告:该实验报告首先介绍了序列发生器的背景和应用场景,然后详细说明了设计思路和系统架构。接下来,报告描述了关键模块的设计与实现,包括计数器、状态机和输出控制等。实验报告还包含了功能验证和性能分析的结果,以及对设计过程的分析和总结。 实验工程文件:该资源还提供了实验所需的工程文件,包括VIVADO工程文件和相关源代码。学生可以直接导入这些工程文件到VIVADO开发环境中,进行仿真、综合和实现流程,并在FPGA开发板上验证序列发生器的功能。 相关资料:为了帮助学生更好地理解和掌握序列发生器的设计与实现,该资源提供了相关的参考资料,如仿真波形文件和参考文献。学生可以使用这些资料进行进一步的仿真验证、时序分析,以及深入研究与拓展实验项目。 适用人群: 这个资源适用于以下人群: FPGA课程学生:对于正在学习FPGA课程的学生,本资源提供了一个具体的实验项目——序列发生器。

2023-07-30

FGPA学习资源-设计原理与应用

FPGA 至简设计原理与应用,大家可以跟着学习资源的顺序进行FGPA的学习,网络上也有对应的教程,结合起来效果会更好!

2023-03-30

数据结构与算法-算法设计题

数据结构与算法设计题包含线性表、栈与队列、数组、广义表、串、树、图、查找算法和排序算法的代表性算法设计题 可以高效的帮助学习数据结构的同学,在学习和复习方面。也可以让读者更好的掌握数据结构与算法的内涵

2022-12-23

《备战蓝桥杯》.pptx 数据结构、C语言、蓝桥杯

此PPT介绍了关于蓝桥杯的一些基本事项、蓝桥杯的一些常见出题、解题思路及方法 对第一次参加蓝桥杯的同学和有想法但不是很坚定的同学有很大的指向性作用 蓝桥杯,又称“暴力杯”,但近年来以DP算法占多,PP T介绍了很多DP算法的例子 在PPT的最后,还介绍了很多蓝桥杯的考前注意事项,对备考的同学很有帮助

2022-12-23

人工智能与数据结构-更清晰的了解数据结构

浅谈人工智能与递归算法 -----大学生课程论文 从多方面分析递归算法及其与人工智能的联系,在多个领域的渗透,包括自然语言处理、递归神经网络、人工生命等等。 相信阅读后,大家会对递归有更深的认识和理解、对人工智能有更大的兴趣去了解~~~ 大家可以当作其为拓宽视野的资料

2022-12-22

空空如也

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

TA关注的人

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