- 博客(91)
- 收藏
- 关注
原创 leedCode - - - 动态规划
解决具有重叠子问题和最优子结构性质的问题的算法设计技术。动态规划通过将复杂问题分解为更简单的子问题,并存储这些子问题的解来避免重复计算
2024-08-30 20:03:40
1632
原创 leetCode - - - 二叉树
理解树的基本结构和操作是解决这些问题的关键。通过熟悉递归和迭代的实现方式,能够在不同问题中选择合适的解决方案。此外,注意边界条件和节点关系的处理,能够提高解题的准确性和效率。
2024-08-26 22:22:22
1850
原创 leetCode - - - 二分查找
利用二分查找的分治策略,提高查找效率。对于特定结构(如有序或旋转数组)的优化,减少时间复杂度到 O(logn)动态调整搜索范围,依据当前状态决定下一步的方向。
2024-08-22 15:38:09
1185
原创 leetCode - - - 双指针
1.排序和双指针:许多问题使用排序结合双指针技术来优化时间复杂度(如三数之和和四数之和)。2.去重:在处理组合或子集问题时,常需要通过去重来避免重复结果。3.二分查找:对某些范围的搜索问题,可以使用二分查找来提高效率。4.边界情况:处理特殊边界情况(如数组为空、单个元素、特定条件下的快速解答)是很重要的。5.预处理:有时候需要对数据进行预处理(如字符串的转换、过滤)以简化后续操作。
2024-08-17 20:25:14
1091
原创 leetCode - - - 数组(数组中的子数组问题)
滑动窗口: 适用于找最小长度的子数组等问题,通过维护一个动态窗口来解决。前缀和: 用于和相关的问题,通过记录前缀和来高效查询子数组的和。动态规划: 适用于找最大子数组和等问题,通过状态转移来记录子问题的解。
2024-08-16 15:41:31
1040
原创 leetCode - - - 哈希表
1.常见的哈希表实现包括 HashMap 和 HashSetHashMap:用于存储键值对,每个键(key)与一个值(value)相关联。使用:使用 HashMap 统计元素出现的次数HashSet:适用于需要存储唯一元素的场景(类似于 HashMap 的键部分)使用:通过 HashSet 快速查找元素是否出现过2.遍历MapentrySet() 是最常用的方法,适合遍历 Map 中的键值对。keySet() 和 values() 方法适合只需要键或值时使用。
2024-08-15 17:22:25
849
原创 leetCode - - - 栈和队列
1.栈的实现Stack stack = new Stack();常用方法push()、pop()、peek()2.队列的实现 Queue queue = new LinkedList();add()、poll()、peek()、removeLast()、addFirst()、peekFirst()...3.递增栈和递减栈来解决特殊问题(较难)4.选择使用数组或者哈希表存储:数组连续(比如上面的26个字母)内存简单、哈希表不连续HashSet保证元素的唯一性,支持高效
2024-08-13 18:54:01
1133
原创 leetCode- - - 链表
链表题目做题总结1.画图理清思路:2.考虑边界条件:链表问题通常有很多边界条件需要考虑,例如空链表、只有一个节点的链表、链表长度为偶数或奇数等等。双指针技巧:3.快慢指针:用于找链表中点、检测环等问题。 双指针一前一后:用于逆转链表、找倒数第k个节点等问题。 双指针同向移动:用于合并两个有序链表等问题。4.递归的应用:有些链表问题可以通过递归来简化处理,例如逆转链表、检测回文链表等。5.注意内存管理: 如果涉及到链表节点的删除或插入,要确保不会造成内存泄漏或者指针丢失。特别是
2024-08-08 12:10:54
1108
原创 leetCode - - - 数组
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。
2024-08-05 17:48:04
1174
1
原创 自动化测试selenium
将人工要做的测试化工作进行转换,让代码去执行测试工作。这样可以提高测试效率,提高测试产品的质量。自动化分类:单元自动化测试、接口自动化测试、UI自动化测试做UI自动化测试的工具为什么使用selenium?1、免费,可以查看源码2、支持各种浏览器3、跨平台(Linux、Windows、Mac)4、有丰富的API。
2024-04-10 08:30:00
1043
原创 Junit单元测试基础
JUnit 是一个流行的 Java 单元测试框架,它为开发者提供了一种简单而有效的方式来编写和执行单元测试。JUnit 5 是最新版本,也称为 JUnit Jupiter,它引入了许多新特性,如参数化测试、条件测试、扩展模型等,以及更强大的断言方法和注解。JUnit 可以与许多集成开发环境(IDE)和构建工具(如 Eclipse、IntelliJ IDEA、Maven、Gradle 等)无缝集成,使得测试编写、运行和调试变得更加方便和高效。
2024-04-09 17:37:14
1223
原创 软件测试--用例
测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环 境、操作步骤、测试数据、预期结果等要素。
2024-04-06 11:14:56
1095
原创 实现消息队列
消息队列服务器,核心功能是提供了虚拟主机,交换机,队列,消息等概念的管理,实现了三种典型消息的转发方式。实现跨主机/服务器之间的生产者消费者模型。
2024-03-30 11:22:04
1201
原创 部署 Web 项目到Linux上
把程序安装到生产环境上, 这个过程称为 "部署",也叫 "上线"。一旦程序部署成功, 那么这个程序就能被外网中千千万万的普通用户访问到。
2024-03-09 12:52:21
744
原创 no main manifest attribute,in xxx.jar(关于Spring项目,无法在云服务器上运行jar包的解决方法)
no main manifest attribute,in xxx.jar(关于Spring项目,无法在云服务器上运行jar包的解决方法)
2024-03-09 12:52:06
5633
原创 加密 / MD5算法 /盐值
加密介绍:在MySQL数据库中, 我们常常需要对密码, 身份证号, 手机号等敏感信息进行加密, 以保证数据的安全性。如果使用明文存储, 当黑客入侵了数据库时, 就可以轻松获取到用户的相关信息, 从而对用户或者企业造成信息泄漏或者财产损失。加密算法:对称加密、非对称加密、摘要算法。1. 对称密码算法:是指加密秘钥和解密秘钥相同的密码算法2. 非对称密码算法 是指加密秘钥和解密秘钥不同的密码算法. 该算法使用一个秘钥进行加密, 用另外一 个秘钥进行解密。
2024-03-07 16:53:22
802
原创 实现令牌技术
给一个场景:实现登录传统思路:• 登陆页面把用户名密码提交给服务器.• 服务器端验证用户名密码是否正确, 并返回校验结果给后端• 如果密码正确, 则在服务器端创建 Session . 通过 Cookie 把 sessionId 返回给浏览器.问题: 集群环境下无法直接使用Session。1.session存在服务器中,服务器重启,session丢失,用户需要重新登录。2.用户第一次请求,分配在服务器1,session存在服务器1上。
2024-03-07 16:52:46
963
原创 Spring AOP的实现方式
Spring框架的两大核心:IoC和AOPAOP:Aspect Oriented Programming(面向切面编程) AOP是一种思想,是对某一类事情的集中处理面向切面编程:切面就是指某一类特定的问题,所以AOP可以理解为面向特定方法编程
2024-02-16 12:24:39
1243
原创 SpringBoot统一功能处理
我们自己写的拦截器的类要继承HanderInterceptor这个类,并且重写这个类中自带的两个方法。@Slf4j@Overridelog.info("目标方法执行前");@Overridelog.info("目标方法执行后");
2024-02-13 19:23:28
1890
原创 留言板(Mybatis连接数据库版)
中有关对于留言板的介绍,现在使用Mybatis完成连接数据库,这样以便刷新浏览器页面后,之前输入的信息仍然能够保存在硬盘中。
2023-12-28 20:34:00
1385
原创 MyBatis多表查询及参数赋值
Mybatis持久层框架:操作数据库的框架,方便对数据进行增删改查。实现:注解、xml实际开发中这两种方式可以共存。工作中尽可能的避免使用多表查询,尤其是对性能要求非常高的项目。
2023-12-25 15:59:34
1295
原创 MyBatis增删改查基础及其xml文件
resource路径下要有一个mapper文件夹,mapper文件夹下要有一个文件末尾名为Mapper的xml文件。mybatis会根据数据库的字段名和Java对象的属性名,进行映射,如果名称一样就可以进行赋值。application.properties或者application.yml中配置以下内容。当数据库中的名字与Java对象中的名字对应不一致时,重命名映射使用as将两者关联起来。缺点:每写一个新的方法都需要使用@Results重新注解一遍,代码冗余。字段与Java属性一样的不用重写。
2023-12-23 11:06:45
694
原创 使用MyBatis操作数据库及单元测试
MyBatis是⼀款优秀的持久层框架,⽤于简化JDBC的开发。JDBC来操作数据库太复杂了,使用MyBatis 是因为它可以帮助我们更⽅便、更快速的操作数据库。
2023-12-21 17:28:57
1598
原创 SpringBoot日志
日志作用:1.定位和发现问题2.监控系统eg:设定响应时间、超过阈值报警3.数据采集eg:统计页面浏览量、停留量,为用户做推荐4.日志审计eg:判断安全攻击,处理安全隐患
2023-12-19 20:45:23
1043
原创 Spring IoC和DI
Spring是一个包含众多工具的IoC容器容器:Tomcat--->web容器List/Map--->数据存储容器Spring容器装的是对象。IoC:控制反转控制权反转,创建对象的控制权。
2023-12-07 20:00:36
1154
原创 基于Spring MVC的前后端交互案例及应用分层的实现
(1)登录参数:userName=?&password=?响应:True/False(2)图书列表展示参数:无响应:List
2023-12-01 17:16:23
1269
原创 Lombok工具包的安装和使用
Lombok是一个java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写getter、setter或equals方法,只要有一个注解,使代码看上去更简洁。
2023-11-28 17:32:19
2462
原创 创建JDK8版本的SpringBoot项目的方法
截止到2023.11.24,SpringBoot不再支持3.0X之前的版本,3.0X之后的版本所对应的JDK版本为JDK17,下面介绍如何在idea上继续使用JDK8的版本。
2023-11-27 17:43:21
2913
原创 Spring Web MVC
Spring Web MVC是包含在Spring框架中的用来构造web项目的框架,底层基于Servlet API.(之前使用的SpringBoot也是创建Spring MVC的一种方式)MVC(model view controller):把一个项目分成三部分,三部分之间的关系如下Spring进行实现MVC模式,称为Spring MVC。
2023-11-24 16:06:11
1481
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人