- 博客(33)
- 收藏
- 关注
原创 SpringBoot添加过滤器
首先过滤器和拦截器都能实现请求的筛选(过滤或者拦截),然后根据自己的业务需求,添加自己的逻辑,保证请求往后走的时候数据能满足自己的需求。同时呢,他们又都能终止请求流(过滤器只要不在过滤链中往后传request就形;拦截器返回false。
2023-12-04 19:38:23
536
原创 Spring Filter深度解析
FilterDef是Filter的定义类,filterClass表示过滤器的定义类super();} else {= null)// 创建 并初始化 Filter 对象try {} else {ApplicationFilterConfig的创建过程就是通过实例化FilterDef的filterDef的filterClass的类并调用Filter的init方法初始化Filter对象。
2023-11-26 22:18:12
872
原创 Servlet简介
servlet就是一个java应用程序,实现了servletAPI规范的java应用程序就是一个servlet,主要是用来处理来自web浏览器或者其他HTTP客户端的请求,常常跟我们的业务程序或者我们的数据对接,相当于一个中间层的作用,动态地生成内容给服务器;
2023-11-20 00:20:59
185
原创 会话跟踪技术
Cookie:客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问。JavaEE提供HttpSession接口,来实现依次会话的多次请求间数据共享功能。Cookie和Session都是来完成一次会话内多次请求间数据共享的。Session:服务端会话技术,将数据保存在服务端。Session是基于Cookie实现的。
2023-11-12 19:14:52
126
原创 SSM架构
SSM框架是spring、spring MVC 、和mybatis框架的整合.标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。View层:主要和控制层进行紧密的联系,负责前端页面的表示.负责呈现数据给客户端,将业务逻辑的结果转化为HTML、JSON、XML或其他格式,以便用户浏览。
2023-10-29 19:09:50
408
原创 算法训练DAY48|力扣198.打家劫舍&&力扣213.打家劫舍Ⅱ&&力扣337.打家劫舍Ⅲ
每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。小偷又发现了一个新的可行窃的地区。
2023-06-26 19:51:36
134
原创 算法训练DAY 45|力扣70.爬楼梯&&力扣322.零钱兑换&&力扣279.完全平方数
完全平方数 是一个整数,其值等于另一个整数的平方;递推公式:dp[j] = min(dp[j - coins[i]] + 1, dp[j]);递推公式:dp[j] = min(dp[j - i * i] + 1, dp[j]);给你一个整数 n ,返回 和为 n 的完全平方数的最少数量。递推公式:dp[i] += dp[i - nums[j]dp[j]:凑足总额为j所需钱币的最少个数为dp[j];dp[j]:和为j的完全平方数的最少数量为dp[j];dp[i]:爬到有i个台阶的楼顶,有dp[i]种方法。
2023-06-26 18:22:51
68
原创 算法训练DAY44 |力扣518.零钱兑换Ⅱ&&力扣377.组合总和
今天是完全背包问题,完全背包和01背包的区别在于物品的数量是无限的,所以遍历的顺序会有所不同;
2023-06-26 17:48:48
228
1
原创 算法训练DAY43 |力扣1049.最后一块石头的重量Ⅱ&&力扣494.目标和&&力扣474.一和零
其他满足题意但较小的子集包括 {"0001","1"} 和 {"10","1","0"}。解释:最多有 5 个 0 和 3 个 1 的最大子集是 {"10","0001","1","0"} ,因此答案是 4。输入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3。dp[i][j]:最多有i个0和j个1的strs的最大子集的大小为dp[i][j]。dp[i][j]:最多有i个0和j个1的strs的最大子集的大小为dp[i][j]。
2023-06-25 22:57:44
79
原创 算法训练DAY42|力扣416.分割等和子集
今天正式学习了01背包,知道可以用一维和二维数组分别来表示dp数组来解决背包问题,对于初始化和遍历顺序,不同的数组的方式都不一样,初始化需要搞明白内部的逻辑进行初始化,当然,最重要的还是递推公式;
2023-06-20 22:00:44
157
1
原创 算法训练DAY41|力扣343.正数拆分&&力扣96.不同的二叉搜索树
今天的两道题都很难很难,自己想了很久都没有想清楚思路,动态规划的核心还是找到递推关系,有时候自己需要动手做一做才能找到规律;
2023-06-19 22:33:02
63
原创 算法训练DAY39 |力扣62.不同路径&&力扣63.不同路径Ⅱ
今天做了两道不同路劲的题目,题目本事不是很难,思路有了,代码很快就写出了了,更重要的是理解dp算法的思想;
2023-06-19 21:20:29
1437
原创 算法训练DAY38||力扣509.斐波那契数&&力扣70.爬楼梯&&力扣746.使用最小花费爬楼梯
今天正式开始了动态规划算法,也就是dp, 动态规划问题就是,当前状态是由上一个状态推到出来的,在解题时核心就是确定递推公式;
2023-06-19 19:49:43
118
原创 算法训练DAY32|力扣122.买卖股票的最佳时机Ⅱ&&力扣55.跳跃游戏&&力扣45.跳跃游戏Ⅱ
今天三道贪心算法的题不是很难,主要是对思路的考虑和想法,代码本身上没有什么大的难度,买卖股票可是说是很经典的题目了,贪心算法的应用还是很广泛的;
2023-06-15 23:21:06
85
原创 算法训练DAY31|力扣455.分发饼干&&力扣376.摆动序列&&力扣53.最大子序和
今天正式开始贪心算法的学习,贪心算法没有一个定式,是通过求得局部得最优解来求解整体最优的一种算法,今天题不难,但是理解思想很重要;
2023-06-09 18:14:23
186
原创 算法训练DAY30
首先,回溯是一种什么暴力的方法,就是穷举所有的可能,所以回溯的一种一点都不高效的方法,那为啥还要使用回溯算法呢,因为有一些问题只要能找出答案就以及很不错了;回溯能解决的问题都有组合问题;同时回溯法如何单纯从字面上来理解的话是十分的抽象的,基本所有能用回溯法解决的问题,我们都可以抽象成一棵树,具体根据不同的问题,我们可以抽象成不同的树,分别中深度和宽度来做不同的解释;这三个问题的难度都什么大,特别是最后一个解数独的问题;总之,学了这么多的回溯算法解决的实际问题,今天来认真总结一下;
2023-06-08 23:08:56
45
原创 算法训练DAY29 |力扣491.递增子序列&&力扣46.全排列Ⅱ&&力扣47.全排列Ⅱ
回溯算法的效率虽然很低很低,但是对于排列等这些问题,用for循环是很难处理的,所有我们只能采用回溯搜索法来穷举所有的可能;
2023-06-07 21:39:18
276
原创 算法训练DAY28 |力扣93.复原IP地址&&力扣78.子集&&力扣90.子集Ⅱ
这3个题,实质上是两个问题,一个数切割字符串的问题,另外一个是给定数组,寻找它的所有子集的问题;这种类型的问题都可以用回溯搜索法来做,找出所有的可能;
2023-06-06 21:57:11
235
1
原创 算法训练DAY25|力扣216.组合总和Ⅲ&&力扣17.电话号码的字母组合
回溯算法在解决组合问题的时候有奇效,可以避免冗余for循环暴力循环;
2023-06-05 16:06:20
267
1
原创 算法训练DAY 24| 力扣77.组合
今天开始学习回溯算法,回溯本质上是一种暴力的解法,他是穷举所有的组合,然后在组合中寻找的符合要求的目标的一种算法;回溯算法的核心就是递归,回溯算法的问题都可以抽象为树状结构,集合的大小构成了树的宽度,递归的深度,构成了数的深度;
2023-06-02 22:58:43
176
1
原创 算法训练DAY8 |力扣344.反转字符串&&力扣541.反转字符串II&&力扣剑指Offer 05.替换空格&&1力扣151.翻转字符串里的单词&&力扣剑指Offer58-II.左旋转字符串
首先,对双指针的应用又多了一个,双指针可以用来反转字符串,其次,清楚的直到c语言有很多不足之处,真的很不适合用来刷题,现成能用的库函数真的很少,刷题很不方便,5个题,核心都是反转字符串,对该操作有了很深刻的理解和认识;
2023-05-23 20:36:05
249
1
原创 算法训练DAY 7|力扣454.四数相加&&力扣383.赎金信&&力扣15.三数之和&&力扣18.四数之和
今天做的都感觉很难,一方面,对Java是不特别熟悉,map和set的创建和使用不会,三数之和 四数之和弄懂了思路,代码照着敲的,对一些具体的细节实现,比如去重,不是很明白,有空一定2刷;
2023-05-17 19:48:18
152
1
原创 算法训练DAY 6|力扣242.有效字母的异位词&&力扣349.两个数集的交集&&力扣202.快乐数&&1.两数之和
c语言刷不动了,全部用java刷的;有现成可以用的set结构和map结构,哈希算法主要使用来查找元素,可以大幅度减少时间复杂度,避免了多重循环的高时间复杂度;累死啦!
2023-05-17 00:40:10
96
1
原创 算法训练DAY 4|力扣24.两两交换链表中的结点&&力扣19.删除链表的倒数第N个结点&&力扣面试题02.07.链表相交&&力扣142.环形链表
今天对链表的一些其他操作有了更深刻的理解,在做删除链表的倒数第N个结点的时候,又结合了前面学过的双指针,在操作的链表的同时,对双指针的思想有了更清楚的认识;
2023-05-15 15:38:23
119
1
原创 算法训练DAY 3|力扣203.移除链表元素&&力扣707.设计链表&&206.反转链表
链表是最基础的数据结构,思路上都没有什么大的问题,主要就是基础代码能力,了解链表这样数据结构,对于一些链表的基础操作还不是很熟练,对于一些小细节处理的还不是很到位,还需要多加练习;
2023-05-14 21:53:56
172
1
原创 算法训练DAY 2|力扣977.有序数字的平方&&力扣209.长度最小的子数组&&力扣59.螺旋矩阵II
今天真的特别特别忙,因为是满课,还有很多其他的事情,所有也只做了这3个题;首先,对双指针的用法有了更深刻的理解,就是在滑动窗口的应用中,用两个指针分别遍历一遍数组就可以大幅度减少时间复杂度;最后,就是对最后的螺距矩阵花了很长的时间,在思路上了理解没有任何问题,就是纯纯的模拟的,但是在循环体中对于很多边界的细节处理需要十分谨慎注意,最后在提交代码的时候,用c语言二维数组传参有遇到了很大的问题,在做这个题的同时,对于c语言的基础又更加的巩固,深刻的弄明白了二维数组传参问题;
2023-05-12 00:13:40
205
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人