- 博客(57)
- 收藏
- 关注
原创 码上聊斋项目测试报告
本项目是一款基于SSM开发的前后端分离社区论坛系统,专为技术交流、问答互助与资源分享场景打造:用户可通过注册/登录 页完成身份创建与认证,进入系统后于发贴页发起话题、编辑页持续完善内容;论坛首页与节点列表页按热度、时间等多维度聚合帖子,详情页集中展示主贴、评论及互动信息,覆盖“浏览–互动–沉淀”完整链路,满足技术社区日常运营与使用的核心需求。负责设计覆盖博客系统全功能场景的测试用例(累计80+),涵盖用户注册登录、帖子增删改查等核心流程;执行。
2025-11-10 18:42:16
123
原创 博客项目测试报告
本项目是一款轻量实用的博客系统,适配个人日常记录、内容分享等场景,功能聚焦用户核心需求与博客交互体验:支持用户通过注册页完成账号创建,登录页验证身份后安全访问系统;提供博客发表页供用户创作内容,编辑页方便后续修改更新,同时通过博客列表页按维度展示内容、详情页呈现完整信息,覆盖从用户操作到内容浏览的全流程,满足个人博客管理与使用的基础需求。
2025-10-15 18:47:45
135
原创 负载均衡-LoadBalance的使用教程
通过 Eureka 我们实现了,服务注册、服务发现。当我们把一个一个项目部署到多个服务器上时,如何实现请求均分呢?
2025-12-06 00:15:00
411
原创 服务注册/发现-Eureka
但是这又引入了新的问题,如果这个服务的ip地址更换了,是不是我们又要修改代码,打包,测试,灰度,直到完全上线呢!这种繁琐的操作,我们是否可以避免呢!服务消费者从注册中⼼查询服务提供者的地址,并通过该地址调⽤服务提供者的接⼝. 服务发现的⼀个重要作⽤就是提供给服务消费者⼀个可⽤的服务列表.服务消费者(Client):⼀次业务中, 调⽤其它微服务的服务. 也就是调⽤其它微服务提供的接⼝.变更. 服务与注册中⼼使⽤⼀定机制通信, 如果注册中⼼与某服务⻓时间⽆法通信, 就会注销该实例.ok今天的分享就到这里了!
2025-12-03 00:45:00
946
原创 排序算法大全
以下代码均通过了这道题912. 排序数组 - 力扣(LeetCode),代码质量是可以保证的。在具体讲解算法之前,我们先补充几个小知识!
2025-12-03 00:30:00
1457
原创 加密与 jwt 令牌的简介
随着 Restful API、微服务的兴起,基于 Token 的认证现在已经越来越普遍。基于token的用户认证是一种服务端无状态的认证方式,所谓服务端无状态指的token本身包含登录用户所有的相关数据,而客户端在认证后的每次请求都会携带token,因此服务器端无需存放token数据。当用户认证后,服务端生成一个token发给客户端,客户端可以放到 cookie 或 localStorage 等存储中,每次请求时带上 token,服务端收到token通过验证后即可确认用户身份。
2025-11-12 01:00:00
571
原创 Git 入门教程
在进行git学习之前,你得先有一个属于自己的gitte 账号哈!Gitee - 基于 Git 的代码托管和研发协作平台点击链接进行注册。
2025-11-08 14:51:26
1161
原创 简介Java 的三大核心特征 封装、继承、多态
如上我们创建了一个学生类,当我们对Student创建一个实例时,其中get(),set(),toString() 方法便是封装在里面,我们直接调用就行,不用考虑内部细节。
2025-11-06 02:00:00
301
原创 简介线程池(Java)
核心线程数目(线程池中最小线程数目):线程的总数目(核心线程数目+非核心线程数目):非核心线程存活时间(举个例子:100,是100s,100min,100h,不知道):线程存活时间的单位(对非核心线程存活时间的修饰):堵塞队列,用于存放任务:用于设置创建线程的工厂,可以给创建的线程设置有意义的名字,可方便排查问题。:拒绝策略拒绝策略(四种)抛出异常,默认的)(让方法的调用者自己解决,方法的调用者不执行就直接丢弃任务)(丢弃队列里最老的任务,将当前这个任务继续提交给线程池)
2025-11-05 01:45:00
780
原创 工厂模式简介
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,它提供了一种创建对象的方式,使得创建对象的过程与使用对象的过程分离。工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。通过使用工厂模式,可以将对象的创建逻辑封装在一个工厂类中,而不是在客户端代码中直接实例化对象,这样可以提高代码的可维护性和可扩展性。1、简单工厂模式(Simple Factory Pattern):2、工厂方法模式(Factory Method Pattern):3、抽象工厂模式(Abstract Fa
2025-11-05 01:00:00
369
原创 总结Java 垃圾回收机制
问题:在讲解垃圾回收机制之前,我们先来想一想垃圾回收机制是用来干什么的?为什么会有垃圾回收机制?首先我们都知道内存是有限的,当我们频繁的去创建对象,变量时,这些我们大概率只会一次,之后便不会再去使用了,但是这已经对内存这个硬件资源进行了占据,计算机并不会主动的去释放那些用过之后便不会再用的资源,随着时间的积累,内存终将会被用尽。我们接下来要讨论的垃圾回收机制便是用来回收这些用过之后,不会在使用的变量,对象等,这样便可以进一步的提高内存的利用率。
2025-10-30 01:00:00
765
原创 JVM类加载的过程
程序在执⾏之前先要把java代码转换成字节码(class⽂件),JVM ⾸先需要把字节码通过⼀定的⽅式 类加载器(ClassLoader) 把⽂件加载到内存中 运⾏时数据区(Runtime Data Area) ,⽽字节码⽂件是 JVM 的⼀套指令集规范,并不能直接交个底层操作系统去执⾏,因此需要特定的命令解析器。验证是连接阶段的第⼀步,这⼀阶段的⽬的是确保Class⽂件的字节 流中包含的信息符合《Java虚拟机 规范》的全部约束要求,保证这些信 息被当作代码运⾏后不会危害虚拟机⾃⾝的安全。
2025-10-29 01:00:00
790
原创 简介双亲委派模型
如果⼀个类加载器收到了类加载的请求,它⾸先不会⾃⼰去尝试加载这个类,⽽是把这个请求委派给 ⽗类加载器去完成,每⼀个层次的类加载器都是如此,因此所有的加载请求最 终都应该传送到最顶层 的启动类加载器中,只有当⽗加载器反馈⾃⼰⽆ 法完成这个加载请求(它的搜索范围中没有找到所需 的类)时,⼦加载器才会尝试⾃⼰去完成加载。避免重复加载类:⽐如 A 类和 B 类都有⼀个⽗类 C 类,那么当 A 启动时就会将 C 类加载起来,那 么在 B 类进⾏加载时就不需要在重复加载 C 类了。是不是非常生动形象,嘿嘿嘿嘿嘿!
2025-10-27 02:15:00
827
原创 简介哈希表(Hash)
首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。也叫开放定址法,当发生哈希冲突时,如果哈希表未被装满,说明在哈希表中必然还有空位置,那么可以把key存放到冲突位置中的“下一个” 空位置中去。:对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置,在结构中按此位置取元素比较,若 关键码相等,则搜索成功 该方式即为哈希(散列。中,元素关键码与其存储位置之间没有对应的关系,因此在。
2025-10-27 01:00:00
577
原创 简述黑盒,白盒,灰盒测试
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把,测试人员程序内部的逻辑结构和内部特性,。因此或数据驱动测试。黑盒测试中常用的设计用例方法:等价类、边界值、判定表法、正交法、场景法、错误猜测法。
2025-10-21 18:35:02
184
原创 什么是Spring与SpringBoot?什么是MVC与SpringMVC?
Spring本身是一个非常强大的企业级应用框架,它可以提高项目开发效率,降低可侵入性,将“高内聚,低耦合”的软件设计思路发挥到了极致。但也有很多缺点,如下:1.Spring框架需要依赖很多jar包,程序开发人员每次搭建 Spring框架都要下载十多个jar 包。由于 Spring 版本频繁地更新,导致不同版本的 Spring 对于依赖的jar 包有着严格的版本要求。即使程序开发人员拥有早期版本的jar 包,也会因为与 Spring 更新后的版本不兼容而导致项目无法运行。
2025-10-20 01:45:00
1344
原创 jmeter使用教程
博主不打算具体介绍xxx选项是干嘛的,那样很枯燥,学习效果并不好,如下采用具体示例演示,相信大家在搜索之间是对jmeter有一定了解,所以如下仅仅演示步骤。
2025-10-20 01:15:00
1001
原创 Redis 常用的数据类型及其内部编码方式
本文主要介绍 string(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序集合)type命令实际返回的就是当前键的数据结构类型命令查询内部编码使用如下:Redis 这样设计有两个好处:1)可以改进内部编码,⽽对外的数据结构和命令没有任何影响,这样⼀旦开发出更优秀的内部编码, ⽆需改动外部数据结构和命令,例如Redis3.2提供了quicklist,结合了ziplist和linkedlist两者的优势,为列表类型提供了⼀种更为优秀的内部编码实现,⽽对⽤⼾来说基本⽆感知。
2025-10-08 01:15:00
565
原创 Java中String,StringBuffer,StringBuilder之间的区别
这个我感觉从内存地址的角度来开更好,如下我们进行字符串拼接时str1 的地址发生了改变,也就是说 str1 + str2 进行拼接,重新开辟了一个新的空间,然后让str1指向这个新开辟的空间地址,这对原先str1地址下的内容并不会改变,这便是不可变。
2025-09-07 02:30:00
227
原创 分析一个小知识 为什么在编译器上 0.1 + 0.2 != 0.3
0.2₁₀ = 0.00110011001100110011001100110011...₂ (同样是一个无限循环的二进制小数)0.1₁₀ = 0.000110011001100110011001100110011...₂ (一个无限循环的二进制小数)的编程语言(如 Python, JavaScript, Java, C++ 等)都会出现的现象。计算机的内存是有限的,它无法存储一个无限的数列。在大多数情况下,我们用不到那么高的精度,根据我们需要精度做出范围内的判断。到一个它所能表示的有限长度。
2025-09-05 01:00:00
154
原创 买卖股票问题(总结)
由图和状态表示得:f[i][j] = Math.max(f[i-1][j],g[i-1][j] - arr[i]);f[ i ][ j ] 为 [ 0 , i ] 区间进行 j 次交易后手中还有股票的最大利润。g[ i ][ j ] 为 [ 0 , i ] 区间进行 j 次交易后手中没有股票的最大利润。由图得: f[i] = Math.max(f[i-1],g[i-1] - arr[i]);设:f[ i ] 为 [ 0 , i ] 区间进行交易后手中还有股票的最大利润。
2025-08-29 11:54:32
980
原创 Redis常用命令
1. keys pattern 返回所有满⾜样式(pattern)的 key( * ,?2. exists key [key ...] 判断key是否存在,返回值:key 存在的个数3. del key [key ....] 删除存在的key,返回值:删除key的个数4. expire key seconds 为指定的 key 添加。
2025-08-28 01:30:00
969
原创 汉诺塔(经典题目)
现在A柱子上有 n 个金片。Eli想知道,她把这些全部移动到B或C,分别要多少次操作?:初始时所有圆盘按大小顺序叠放在柱子A上,最大的在底部,最小的在顶部。编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。:通常标为A(起始柱)、B(辅助柱)、C(目标柱)。("需要原地修改栈 " 看清题目要求哦!:将所有圆盘从起始柱A移动到目标柱C。
2025-08-25 15:11:21
394
原创 最长递增子序列(一题多解)(leetcode 300)(模板)
这里是每次对 i 位置左边求了一次最长子序列和右边求一次最长子序列,虽然代码不优雅很拉跨,但这个代码还是把这题AC了,之后看一下题解,修改修改,也能变得很好。当有 n 个位置时,对于第一个位置,可选 0,1,1,3,2,3,其中的任意一个,如对于第一个位置选了数组中的1,那么在1之前的0就不能在考虑,对于第二个位置就只能考虑数组中数字1之后符合题意的数,填到第二个位置。选出最少的人数,也就是要保留最多的人数,以 i 为中心点,左边选出最长的递增子序列,右边选出最长的递减子序列,注意:理解这里的顺序,连续。
2025-08-25 00:30:00
823
原创 Redis虽然是单线程模式,为啥效率高?速度快?(面试题)
快这个是要有一个对比的,是相对于什么快,不是说他快,就是,就比如猎豹跑的很快,是相较于其他动物,如果拿猎豹与高铁,飞机,那猎豹还快吗?这里Redis 是相对于 MySQL 这种关系型数据库要快很多。那么如下我将使用 Redis 与 MySQL 这两个进行比较。
2025-08-21 23:45:00
201
原创 完全背包(模板)
选 i 位置 dp[ i ] [ j ] = Math.min( dp [ i - 1][ j ], dp [ i ] [ j - i * i ] + 1),需满足条件。对于dp[ 0 ][ xx ] 0 个可选的数,但要求选出数的和 和为 n ,这是不可能的,所以我们初始化为 0x3f3f3f3f,这样就选不到,这一行的值了。对于 dp[ xx ][ 0 ] xx 给可选的数,但要求选出数的和为0,不选就可以了,所以初始化为0。不选:dp[ i ][ j ] = dp[ i - 1][ j ];
2025-08-21 23:45:00
1655
原创 0-1 背包问题(模板)
dp问题的题目就是多做题,多总结,之后遇到不同的题的时候与原先做过类似的题比较,然后猜一个状态表示,看一看能不能推出状态转移方程,能推出来就说明状态表示对了,不行就再做出调整。是在不会咋看答案,吸收这里面的经验。
2025-08-20 23:45:00
877
原创 Java快速接入DeepSeek和本地部署DeepSeek
本文有 Java idea 调用DeepSeek Api 和使用本地部署的DeepSeek,包括一些我遇到的报错
2025-08-18 23:45:00
1128
原创 深度优先遍历dfs(模板)
该算法沿着树的深度遍历节点,尽可能深地搜索树的分支。当节点的所有边都已被探寻过,或在搜索过程中节点不满足条件时,搜索将回溯到发现该节点的边的起始节点。这里有重复,如果我们把2往后的最大长度记入下来,是不是当第二次到2位置时便可直接返回这个值了。DFS遍历序列不止上面一种,在源点Vo到下一个结点可以是 V1,V3,V4 ,具体是哪一个由你写的代码决定。ok,通过上面的文字和图,大致可以了解什么是dfs,那么下面用dfs如何来解决这道题呢?所以在如下代码每次向上返回值之前,先把这个值记入下来,方便下一次使用。
2025-08-18 23:45:00
511
原创 二分算法(模板)
这里不会严格用数学方式去证明,那样太花时间了,感兴趣的话网上搜搜,我们直接给出结论,当right + left 结果为偶数时,mid1 与 mid2 是没有区别的,但结果为奇数时就会相差1,不要小看了这一点区别,不注意这里,就很有可能写出死循环,具体我们在下面例题里体现。这里只列举了向下取整,避免死循环情况。举个例子: right = 3,left = 4,(right + left)/2 = 3,(right + left + 1)/2 = 4;(right + left + 1)/2 :向上取整。
2025-08-15 23:45:00
1923
原创 Cookie和Session简介
简单一句话:Session 就是服务器用来记住“你是谁”以及“你这次访问都干了啥”的一种临时方法,主要靠一个独特的 ID(通常放在 Cookie 里)来关联你和服务器上存储的你的信息。
2025-07-10 01:00:00
987
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅