- 博客(29)
- 收藏
- 关注
原创 spring学习笔记之注解开发
摘要:Spring注解主要用于简化XML配置,核心注解包括@Component(通用组件)、@Controller(Web层)、@Service(业务层)和@Repository(数据层)。使用前需配置组件扫描。依赖注入注解包括@Value(基本类型)、@Autowired(按类型)、@Qualifier(按名称)和@Resource(混合方式)。全注解开发可使用@Configuration替代XML配置,配合@ComponentScan实现自动扫描。注解通过反射机制在运行时处理,相比编译期注解具有动态性。
2025-11-16 19:54:35
1035
原创 Spring学习笔记之面向切面编程(AOP)
面向切面编程是一种编程范式,核心目标是解决的模块化问题,与面向对象编程(OOP)互补,进一步提升代码的模块化和可维护性。核心思想:在传统编程中,一些通用功能(交叉业务如日志、事务、权限校验等)往往需要嵌入到各个业务逻辑中,导致代码冗余、分散,难以统一维护(即 “横切” 问题)。,实现业务逻辑与通用功能的解耦。。解决了 OOP 在处理横切关注点时产生的代码分散和纠缠问题。一个生动的比喻就像公司的(如销售部、研发部、财务部)。每个部门职责明确,专注于自己的核心业务(纵向分工)。就像公司的。
2025-11-15 21:58:21
727
原创 MyBatis入门到精通(Mybatis学习笔记,已完结)
本文系统介绍了MyBatis持久层框架的核心技术与应用实践。主要内容包括:1)MyBatis作为半自动ORM框架的特性与工作原理,通过SQL映射简化JDBC操作;2)基础CRUD实现与核心配置文件解析;3)Mapper代理开发模式与动态SQL语法(if/where/set/foreach等);4)高级查询功能如结果集映射、多条件查询和延迟加载;5)多表关联查询的三种实现方式(JOIN/嵌套查询/延迟加载);6)缓存机制(一级缓存SqlSession级别、二级缓存Mapper级别)及其应用场景。全文通过丰富的
2025-10-19 22:20:15
589
原创 spring学习笔记之IOC专题
(一)初始耦合版本:硬编码创建对象(高耦合)此版本中,对象由业务代码直接newtest 模块(测试入口)触发执行测试类UserTest中的@Test注解方法testSave()是执行入口:—— 手动创建Service层实例(第二步:调用—— 触发Service层的业务逻辑。Service 模块调用 Dao 模块的save()方法中,通过硬编码创建Dao层实例:执行—— 手动创建Dao层实例(调用—— 触发Dao层的数据访问逻辑(输出 “保存成功了...”)。核心问题Service直接依赖Dao。
2025-10-19 16:31:04
679
原创 JDBC进阶之连接池的配置(Druid与HikariCP)
本文对比了两种常用数据库连接池Druid和HikariCP的特性与应用。HikariCP以极致性能著称,配置简单轻量,适合高性能Web应用;Druid功能全面,内置监控系统,适合企业级需求。文章分别演示了两种连接池的硬编码和软编码实现方式,其中软编码通过配置文件解耦数据库连接信息。HikariCP需要额外引入日志包,而Druid可直接从官网获取。两者各有优势,应根据应用场景选择,HikariCP适合追求性能的轻量级应用,Druid更适合需要完善监控的企业环境。
2025-10-01 18:50:45
867
原创 JDBC进阶学习笔记
本文介绍了Java项目中实体类与ORM框架的应用。实体类通过封装数据库表属性,使用快捷方法生成get/set方法,便于维护管理。ORM框架实现了数据库记录到Java对象的映射过程。文中还演示了JDBC主键回显的实现方法,通过Statement.RETURN_GENERATED_KEYS获取自增主键值。最后介绍了批量插入数据的优化方案,使用addBatch()和executeBatch()减少数据库交互次数,提升执行效率,并需在连接URL中添加rewriteBatchedStatements=true参数。
2025-09-28 19:39:03
248
原创 2025年GPLT团体程序设计天梯赛L1-L2
2.将题目转化为在同一时刻最多有多少只胖达同时处于活跃状态,这个最大并发活跃数就是我们最少需要的山头数量,利用差分来写。【解析】这题才开始正向根据题意即先考虑是否补贴的话题意可能有些不清楚,那我们逆着想不补贴的情况写了,剩下的就是补贴的了。【解析】这个地方我直接用的暴力枚举和离散化处理。【解析】哇,这个不是字符串题比不是字符串题要难得多啊,我的思路是数组纯模拟。【解析】数据范围不是很大,可以暴力枚举。【解析】 dfs直接进行暴力搜索。【解析】这个题就是模拟栈的过程。【解析】直接输出即可。
2025-04-25 22:04:43
729
原创 关于位运算的一些小记
如果一个数字是3的次幂,那么这个数一定 只含有3的这个质数因子,1162261467是int范围内最大的3次幂,如果1162261467%n!=0那么就不是3的次幂。如果n是负数直接返回1,否则的话进行位运算的操作。提取出二进制里最右侧的1。
2025-04-25 21:52:10
272
原创 第七届传智杯全国IT技能大赛程序设计赛道 国赛(总决赛)—— (B组)题解
【解析】首先我们先对数列排序,找到其中最小的数,那么我们就保证了对于任意一个第i+1个的值都会大于第i个的值那么第i+2个的值也比第i个大,那么我们第i+1次切木棍的时候一定会当第i个的值就变为了0的,第i+1减去的应该是第i个的值与第i-1个的差值,对于i+1到n同样如此,那么我们的递推关系就出来了,每次都切去的值都是(第i个跟第i-1个的差值)*(n-i+1)那么我们就可以用差分来写。看题目范围,用dfs全枚举一边的时间是1!那么我们用dfs进行预处理,接着用二分以logn的复杂度来进行查找枚举。
2025-04-21 22:21:39
603
1
原创 2025 蓝桥杯省赛c++B组题解---持续更新中
没有解析的是本蒟蒻还没有完全理解,有疑点或者说不太会的,我会持续更新,尽量把没有解析的补上,如果有大佬会的话可以在评论区分享一下,相互进步,大家也可以说说本蒟蒻没有注意到的地方,开拓一下思路,最后祝大家不断学习,不断进步!【解析】这题看着就是一个简单的模拟,事实也是如此,但是数据范围很大,容易超时,那我们来打表找找规律,你会发现最后他都趋向一个值,这就是榜样学习的力量啊!这道题本蒟蒻目前还没有理解,原本用暴力发现根本行不通,数据范围太大了,运行不出来,太难了,等我再理解理解理解,回来补题解(┭┮﹏┭┮)。
2025-04-13 12:34:36
895
原创 2024年GPLT团体程序设计天梯赛真题--L2
这道题首先的思路是暴力解题,开个矩阵,但是内存会爆,然后我就想着用邻接表来做一下优化,数据能过,但是打个擦边球,要优化cin,cout所用的时间,才能过。还有一种思路是二分,是我借鉴别人的思路,觉得很巧妙。用C++的stl容器map。数据范围小递归暴力求解。
2025-03-20 21:34:04
723
原创 2024年GPLT团体程序设计天梯赛真题--L1
天梯赛L1的题偏向基础,考验基本功,基本上不涉及算法,都是用的基础语法来搞定的,再加上数据范围不大,所以直接可以暴力过。
2025-03-16 17:02:14
967
原创 2024年第七届传智杯程序设计挑战赛复赛(第一场):小苯的糖果游戏(A组、B组、C组)
解题思路:小苯和格格从1走到n,每一步都有两种选法,选或不选,这种思想和01背包很像,因此用01背包的思路来解。dp[i][s]数组的含义就变为当走到第i步且背包的体积是s时的选法的种类。当s<a[i]时,当前dp[i][s]=dp[i-1][s],当s>=a[i]时,dp[i][s]=dp[i][s]+dp[i-1][s-a[i]]。最后将小苯和格格处于相同体积下的dp的相乘即可。
2025-03-01 20:35:44
520
原创 2024年第七届传智杯程序设计挑战赛复赛(第一场):小苯的网络配置(A组、B组、C组)
解题思路:最短路问题用Dijksta算法,这题的难点在于传输记录,怎么确定当前路径就是最短路,并且记录每条分支是不是最短路。观察得到对于每条边 (u,v),如果此边在某条最短路上的话,则一定满足 dist(1,u)+dist(v,n)+w[u,v]=dist(1,n),即最短路从 1 到 u,再从 u 到 v,再从 v 到 n。或者将 u,v 反过来的这个条件也成立。因此我们先预处理从 1 出发的 dijkstra,再预处理一个 从n出发的 dijkstra,求出 n 到所有点的最短路记作 dn。
2025-03-01 20:00:08
638
原创 2024年第七届传智杯程序设计挑战赛复赛(第一场):小苯的数组最值(A组、B组、C组)
2024年第七届传智杯程序设计挑战赛复赛(第一场):小苯的数组最值(A组、B组、C组)
2025-02-25 20:02:48
742
原创 2024年第七届传智杯程序设计挑战赛复赛(第一场):小苯的水果园(B组、C组)
2024年第七届传智杯程序设计挑战赛复赛(第一场):小苯的水果园(B组、C组)
2025-02-25 19:04:31
662
原创 背包九讲问题保姆级解析!!!---(题目分析+代码分享)
什么是背包问题?基本思路做题步骤背包问题的类型1.01背包问题示例题目解析:二维数组空间压缩优化2.完全背包示例题目解析:朴素算法优化3.多重背包题目解析:朴素算法:二进制优化:单调队列优化:三种方法对比:4.分组背包题目解析:一维优化5.混合背包问题6.二维费用背包问题7.求方案数8.求具体方案题目解析:9.有依赖的背包问题题目解析:拓展
2025-02-08 11:42:49
1129
原创 贪心算法详解
什么是贪心?基本思想【示例】 例题1:区间选点例题2:最大不相交区间数量例题3:区间分组例题4:区间覆盖例题5: 合并果子例题6:排队打水例题7:货仓选址例题8: 耍杂技的牛
2025-02-03 10:49:07
1226
原创 KMP算法详解
KMP 算法,全称为 Knuth-Morris-Pratt 算法,由 Donald Knuth、Vaughan Pratt 和 James H. Morris 三人于 1977 年联合发表。该算法主要用于在一个主串中快速查找一个模式串是否出现,以及出现的位置,即字符串匹配的问题,其核心思想是利用已经匹配的部分信息,避免不必要的回溯,从而提高匹配效率。基本概念前缀和后缀前缀:对于一个字符串,其前缀是指包含首字母,不包含尾字母所有子串。例如,对于字符串 “abc”,它的前缀有 “a”“ab”
2025-01-24 22:49:54
964
原创 栈与队列(拓:单调栈与滑动窗口)
栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。队列这个就很好理解啦,把它看成我们日常生活中的排队就行啦。
2025-01-24 00:17:44
858
原创 双指针算法
双指针的思想是一种很常见的思想,,是一种在数据结构(如数组、链表等)中使用两个指针来遍历和处理数据的技巧(如二分查找,数据结构的链表,模拟栈中的头节点,尾节点等等)。这两个指针可以按照相同的方向(同向双指针)或相反的方向(相向双指针)移动。大致可以分为快慢指针,左右指针等等,其本质就是通过合理地利用两个指针的移动来减少不必要的遍历。在单指针遍历的情况下,可能需要多次嵌套循环来检查元素之间的关系。而双指针可以利用数据的有序性(如果有的话)或者其他特定条件,通过一次遍历或者少量的遍历就可以找到目标结果。
2025-01-19 23:14:46
323
原创 前缀和算法
最近在做题的过程中发现前缀和的应用非常广泛,并且来说,这一部分的考点一般很长考,但是写题的时候又不容易想到,于是我今天回来复习整理一下其中的思想。
2025-01-17 22:28:38
921
1
原创 前缀和的逆运算——差分
书接上回,对于前缀和来说,它的主要功能是处理区间和问题,那么对于差分来说则是对区间内的数字动手啦!!差分:差分,又名差分函数或差分运算,差分的结果反映了之间的一种变化。同时也是前缀和的逆运算。应用:给指定区间[l,r]中的每个数都加上或减去c,按照朴素算法,一次操作的时间复杂度是O(r-l),假如l足够小,r足够大,一次操作的时间复杂度就是O(n),那么面对n次操作时间复杂度就是O(n^2)了,太慢啦!我们常规操作就是空间换时间,满足守恒定律。
2025-01-17 22:28:17
1333
原创 洛谷P1012 [NOIP1998 提高组] 拼数
而正确答案是4073232121713513(才开始我忘了这个情况,卡了很长时间,于是我就参考了别人的思路,也就是题解二)an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。对于全部的测试点,保证1≤n≤20,1≤ai≤109。将a,b的值进行交换,这是利用sort函数内部进行实现。第二行有n个整数,表示给出的n个整数ai。前备知识:strcmp()函数采用字典序的方法。第一行有一个整数,表示数字个数n。一个正整数,表示最大的整数。将组合的情况两两进行比较。题解二:(100分)
2024-04-29 21:08:20
406
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅