- 博客(25)
- 收藏
- 关注
原创 问卷考试系统测试报告
本文对问卷考试系统进行了全面测试,包括功能测试、自动化测试和性能测试。功能测试覆盖用户注册/登录、问卷/考试管理、题库管理、模板管理等核心模块,发现"导出"按钮失效、模板搜索异常等5个功能缺陷。自动化测试采用Selenium框架实现8个模块的自动化用例,覆盖率达90%。性能测试使用JMeter和Postman评估系统并发处理能力,结果显示关键页面响应时间均控制在1秒内。测试表明系统整体功能完整,但需修复现有缺陷并优化性能瓶颈。
2025-10-12 20:23:37
980
原创 墨栈-测试报告
本文针对"我的博客系统"进行了全面测试,验证了系统的功能可用性、性能表现和用户体验。测试覆盖用户管理、文章管理、导航交互等核心模块,共执行20+测试用例,发现3个功能缺陷和2个性能优化点。严重问题包括表情功能异常、图片发布显示问题和注销体验不佳;性能方面,高频操作表现良好但批量数据加载存在瓶颈。建议优先修复功能缺陷,优化数据库查询效率,并增加用户体验细节设计。整体而言,系统核心功能稳定可用,但需针对性优化以提升用户体验。
2025-10-09 10:11:51
772
原创 TCP的几个机制
本文介绍了TCP协议的核心机制及异常处理。主要内容包括:1)确认应答机制,通过序号和确认序号确保可靠性;2)超时重传机制,处理丢包和重复数据问题;3)连接管理,详细说明三次握手和四次挥手的过程及状态变化;4)滑动窗口和流量控制机制,提高传输效率;5)拥塞控制算法,包括慢启动、拥塞避免和快恢复;6)延时应答和捎带应答优化;7)粘包问题的解决方案;8)TCP与UDP的关键区别;9)各类异常情况(进程崩溃、关机、断电、断网)的处理机制。这些机制共同保障了TCP连接的可靠性和高效性。
2025-08-09 18:00:00
991
原创 锁策略--
本文介绍了6种常见的锁机制分类:1)悲观锁与乐观锁,前者独占资源后者无锁检测;2)轻量与重量级锁,区别在资源消耗;3)自旋锁通过循环尝试避免线程切换;4)互斥锁与读写锁,后者区分读/写操作;5)公平锁按请求顺序获取,非公平锁直接竞争;6)可重入锁允许同一线程重复获取。这些锁机制各具特点,适用于不同并发场景,开发者需根据需求选择合适方案。
2025-07-31 08:00:00
180
原创 MYSQL
本文总结了SQL数据库操作的核心语句,包括数据库/表操作、CRUD增删改查、约束条件、聚合/分组查询、多表连接、索引和事务等。重点介绍了SELECT查询的各种用法(去重、排序、条件筛选、分页),约束类型(主键、外键等),以及多表连接方式(内/外连接)。还列举了常见数据类型及其适用场景,如INT用于ID、VARCHAR存储变长文本等。这些基础语句和概念是数据库操作的关键,对开发人员掌握数据管理至关重要。
2025-07-31 06:00:00
869
原创 多线程-synchronized,ReentrantLock,CAS
Java中的synchronized和ReentrantLock是两种锁机制,主要区别在于前者是JVM实现的隐式锁,后者是API实现的显式锁。synchronized优化过程包括锁升级(偏向锁→轻量级锁→重量级锁)、锁消除和锁粗化。CAS操作存在ABA问题,可通过版本号解决。AtomicInteger使用CAS实现线程安全的自增操作,示例代码展示了两个线程并发递增AtomicInteger的用法。这些机制共同构成了Java并发编程的基础。
2025-07-30 18:00:00
253
原创 多线程案例(线程池)
任务提交->线程分配(如果核心线程满了,放入队列,队列满了触发拒绝策略)->执行任务->资源回收。抛弃最新任务,被拒绝的任务将被直接丢弃,不做任何处理。:报错,新任务旧任务都不执行,罢工。让给你任务的线程自己执行任务。抛弃最老任务执行新任务。
2025-07-28 08:00:00
291
原创 多线程案例(定时器)
摘要:该Java程序实现了一个简单的定时任务调度器。通过PriorityQueue存储按执行时间排序的定时任务(mytime类),使用单独的线程不断检查队列头任务是否到达执行时间。核心逻辑包括:1)比较当前时间与任务设定时间;2)未到时间时wait等待;3)执行任务后从队列移除。主程序测试了1秒、2秒、3秒三个定时任务,其中3秒任务执行后会终止调度器。整个设计利用了优先级队列和线程同步机制来实现定时任务调度功能。
2025-07-27 08:00:00
97
原创 多线程案例(阻塞队列)
本文展示了一个基于Java的循环队列实现,使用同步锁机制解决生产者-消费者问题。队列类包含put()和remove()方法,分别实现入队和出队操作,通过synchronized同步块和wait/notify机制确保线程安全:当队列满时入队操作暂停并等待,队列空时出队操作暂停并等待。主函数演示了一个生产者线程不断向队列添加数字。该实现通过循环判断条件防止虚假唤醒问题,并使用环形数组结构提高空间利用率。
2025-07-26 08:00:00
70
原创 每日一题.
本文“每日一题”是一个持续更新的个人算法题记录专栏,旨在系统性地整理我每天解决的算法问题。文章内容包括题目分析、解决方案、关键思路和优化技巧,例如通过快速排序等经典算法展示高效处理方式。坚持每日一题不仅能提升算法思维和编程能力,还能为面试准备和实际项目打下坚实基础。欢迎读者一起参与,共同成长
2025-07-25 16:39:12
730
原创 多线程案例(单例模式)
懒汉模式:实现类的时候实例化,置为空,后续实例化时判断,如果为空则调用构造函数,否则直接返回已经实例化好的。饿汉模式:实现类的时候就实例化,为什么加volatile。
2025-07-25 08:00:00
159
原创 线程安全..
重复枷锁:加一次计数器++一次,解锁时,计数器不为1就--,为1再解锁。解决:给读取的变量加上volatile修饰,使之只能被从内存读取。当内存里改变时寄存器没改变读取到错误的信息而产生的问题。问题4:jmm优化会使从内存读取变成从寄存器读取。问题5:编译器会对代码的执行顺序进行重新安排。问题2:代码问题有时候改不了。
2025-06-19 07:30:00
202
原创 线程的创建
实现Runnable接口 重写run 使用匿名内部类。直接调用run,实际上还是一个再一个线程执行任务。继承Thread重写run 使用匿名内部类。实现Runnable接口 重写run。使用lambda(λ)方法 (推荐)调用start,创建了一个新的线程。继承Thread重写run。
2025-06-18 07:30:00
207
原创 字符串和内存函数详解与模拟实现
Strtok 分隔 例如 123*34 5**435*——》把要去掉的变成\0,一次去一个,去完返回去掉的字符的地址,如果该地址不为空指针,下次调用函数且参数是null时,继续上一次的位置开始。多了个数限制 不过和 strncpy 不同的是如果只有3个,限制是5个,只会在3个追加完后补一个\0,而不是2个,有3个限制是2个,也是追加2个之后补一个\0。在p1里找p2第一次出现的位置,返回这个地址,如果p1里没有p2,则返回空指针。例如 isdigit(‘2’) 真返回非零,假返回零。
2023-07-26 23:21:39
188
1
原创 Q排序1111
q排序 void* 因为q排序是一个所有类型都能拍的函数,void没有具体类型,可以接受任意类型的地址,但是注意。有,if语句,如果是小于零也为真也会执行,如果要排升序只能>0。所以使用前先强制类型转化一下。
2023-07-24 19:58:32
100
原创 c指针 进阶
3和4所存进去的地址是同一个字符串的,1,2是两个数组的地址,而3,4只是赋值,赋的是同一个,因为没必要再开辟一个来赋值。组的首元素地址,**arr表示。,也可以(*arr+i)[j]表示 第一关数组的首元素。数组指针 : 指向数组的指针 int (*p)[]= int *p=&a。也就是指向整形数组的指针,arr表示第一个数组的地址,*arr表示第一个数。*表示arr是指针,然后指向的是【】也就是数组,类型是整形。
2023-07-22 23:08:35
107
1
原创 数据在内存中的存储(数据类型,无符号数,表现形式)
目录数据类型1.整形原反补大小端 无符号转化2.浮点数科学计数法存储指针类型自定义类型空类型其他unsigned表示无符号数,signed表示有符号数,特例是char没有规定哪个是无符号有符号整形的二进制表现形式有3种(正数原反补相同)原码:二进制直接写出来,首位为符号位,正为0负为1, 反码:原码除开符号位取反补码 :反码+1反码转换为原码可以按以上步骤反过来-1取反,也可以直接取反+1. 内存中储存的是补码,并且是倒着存的为什么?这就要引出一个概念,大小端把一个有符号数转化为无符号数并不是大家认
2023-07-21 22:27:49
375
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅