- 博客(33)
- 收藏
- 关注
原创 JavaEE--8.网络编程
1.不同的协议层对数据包有着不同的称谓,在传输层叫做段,在网络层叫做数据报,在链路层叫做帧2.应用层数据通过协议栈发送到网络上时,每层协议都要加上一个数据首部,称为封装3.首部信息重包含一些类似于首部有多长,载荷有多长,上层协议是什么等信息4.数据封装成帧后发送到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的上层协议字段,将数据交给对应的上层协议处理。
2025-09-11 20:19:51
657
原创 JavaEE---7.文件操作和IO
System.out.println("请输入要查询的路径");if(!return;System.out.println("请输入要查询的关键词");//查询if(!return;return;return;}else{System.out.println("找到了匹配的文件"+destFile.getAbsoluteFile());
2025-09-05 15:59:32
935
1
原创 社区平台UI自动化测试---测试报告
为“论坛系统”项目设计并实施自动化测试,自动化测试是通过Selenium编写的自动化脚本,覆盖了用户登录、用户注册等核心功能模块,确保该项目各个模块功能的稳定,使用户有流畅的论坛浏览和使用体验。策略:对论坛进行,功能测试,界面测试,易用性测试,兼容性测试等,并使用selenium编写自动化测试脚本进行自动化测试。本次测试对登录,注册,编辑新帖等核心功能进行测试并用selenium编写自动化测试脚本。
2025-08-28 15:13:51
1043
原创 个人博客系统系统---测试报告
个人博客系统基于SSM框架的基础上实现的。博客系统的有登录页面、列表页面、博客详情页面、博客编辑页、博客发布页面这五个页面构成。为了验证博客功能是否完整,我将对博客系统进行手工测试和自动化测试。测试的内容的看这五个页面的呈现是否完整,功能是否能正常使用。例如登录功能,查看博客功能,发布博客功能,编辑博客功能。并且查看在不同的特殊情况下,博客系统的情况是否与预期结果一样。
2025-08-27 18:05:53
1011
原创 JAVAEE--5.多线程之常见的锁策略
注意:接下来讲解的锁策略不仅仅是局限于JAVA,任何和"锁"相关的话题,都可能会涉及到以下内容,这些特性主要是给锁的实现者来参考的。
2025-08-03 14:14:05
932
原创 JAVAEE--4.多线程案例
put插入元素的时候,判定如果队列满了,就进行wait.(注意,要在循环中进行wait,被唤醒时候不一定队列就不满了,因为同时是可能唤醒多个线程),以后只要出现wait,就使用while!类似的,MySQL这样的数据库处理每个请求的时候,做的工作就是比较多的,消耗的硬件资源也是比较多的,因此MySQL也是后端系统重容易挂的部分。定时器这个东西特别重要,特别常用,尤其是后端开发,和"阻塞队列"类似,也会有专门的服务器,就是用来在分布式系统中实现定时器这样的效果。
2025-07-30 23:06:26
738
原创 JavaEE--3.多线程
1)需要更多的机器,来部署消息队列(小,机器硬件不值钱)2)A和B之间的通行延时会变的更长对于要求A和B之间的调用,来要求响应时间比较短就不太合适了阻塞队列在Java标准库也提供线程的封装BlockingQueue并且有多种实现方式,比如基于数组实现,或者基于链表实现,或者带有优先级的(基于堆)后面的参数是容量---最多能容纳多少元素。
2025-07-27 18:38:39
1033
原创 死锁出现的原因
禁止变量修改是以一种解决线程安全问题的思路Java中这种思路的普适性不是很高通过加锁把非原子性的修改操作打包成一个整体,变成原子操作()指定锁对象{}放进去的就是要打包成一个整体的代码进入代码开机会针对锁对象加锁除了代码块(),return,break针对锁对象解锁死锁出现的场景1)一个线程一把锁,这个线程针对这把锁连续加锁两次这种情况下,代码示例没有出现真正的死锁,因为synchronized针对这种情况做出了特殊的处理"synchronized"是"可重入锁"
2025-07-27 18:38:31
732
原创 软件测试--自动化测试1
手工测试的功能少,能保障产品尽快上线,时间足够,测试的质量也会更高一些如果存在历史功能的优化/变更,自动化测试脚本可能会出现报错,测试人员需要维护并解决自动化脚本里的问题。
2025-04-19 09:38:50
753
原创 JavaEE---1.计算机是如何工作的?
1.了解冯诺依曼体系结构2.CPU的核心概念,CPU的两个重要指标(核心数和频率)3.CPU执行指令的流程(指令表,一条一条指令,取指令,解析指令,执行指令)4.操作系统核心概念(管理硬件,给软件提供稳定的运行环境)5.进程的概念(运行起来的程序和可执行文件的区别)6.进程的管理(PCB,链表)7.进程的调度(状态,优先级,上下文,记账信息)==>并发,并行CPU中央处理器:进行算术运算和逻辑运算存储器:分为外存和内存,用于存储数据(使用二进制方式存储)输入设备:用户给计算机发号施令的设备。
2024-11-27 21:12:34
1251
1
原创 Mysql中的索引
4.由于B+树叶子结点就是全集,非叶子节点不必存储数据行,只需要存储索引列的key即可,使得非叶子节点消耗空间比较小,甚至这样的数据可以直接加载到内存中,这样进一步减少了硬盘IO的次数。每个节点访问的时候都是一次硬盘IO就可以了,和某个节点比较的时候,是先进行了一次硬盘IO,把所有这个节点上的内容读取出来,接下来的比较都是在内存中进行的。1.这也是个危险的操作:数据量小(几千,几万)谈不上危险,数据量大(千万级别的),创建会触发大量的IO硬盘,会把机器卡死,甚至会把数据库搞挂掉。
2024-10-25 11:31:29
971
原创 无头双向不循环链表的模拟
1.如果是头结点判断有没有下一个数据,两个处理起来不一样,如果存在,head=head.next,前驱再置空,如果不存在,head已经是null,直接last置空即可。2.如果不是头结点就直接前一个节点的后继结点为当前的下一个,如果是尾节点直接last向前一步,如果不是,改变下一个的前驱结点为当前节点的前一个。头插与尾差由于多了一个前驱结点,所以要分析为空的情况,创建新的节点,使得新节点的前驱后继都为null。2.如果大小为0,则进行头插,如果大小为size,则进行尾差。如果找到了,判断是不是头结点的。
2024-10-03 01:18:15
282
原创 链表面试编程题
方法:依旧是快慢指针法,快指针先走k-1步,紧接着一起走,快指针走到null时,slow指针的值就是倒数第k个节点,需要注意的是,确保k符合条件。方法:依旧使用两个虚拟节点/傀儡节点,小于x的放在一个虚拟节点内,大于等于x的放在另一个虚拟节点内,最后进行拼接。从后往前循环判断,判断过程中分奇偶判断,内补实现偶数判断返回true,循环结束为奇数判断结束,返回true。新链表是通过拼接给定的两个链表的所有节点组成的。新链表是通过拼接给定的两个链表的所有节点组成的。的非空单链表,返回链表的中间结点。
2024-10-02 16:15:10
1313
原创 无头单向非循环java版的模拟实现
【本节目标】1.ArrayList的缺陷2.链表上节课已经熟悉了ArrayList的使用,并且进行了简单模拟实现。通过源码知道,ArrayList底层使用数组来存储元素:由于其底层是一段连续空间,当,效率比较低,因此。因此:java集合中又引入了LinkedList,即链表结构。链表是一种存储结构,数据元素的是通过链表中的次序实现的。实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:1.2.3.虽然有这么多的链表的结构,但是我们重点掌握两种,一般不会单独用来存数据。
2024-09-30 14:23:45
1077
原创 JavaSe8------继承
本节目标1.继承2.组合 在Java中如果要表示类之间的继承关系,需要借助extends关键字,具体如下: 总结:成员方法没有同名时,在子类方法中或者通过子类对象访问方法时,则优先访问自己的,自己没有时再到父类中找,如果父类中也没有则报错。 【说明】 1.通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到则访问,否则编译报错。 2.通过派生类对象访问父类与子类同名方法时,如果父类和子类同名
2024-09-28 23:12:30
923
原创 数据结构顺序表常用方法的模拟实现
测试补不仅判断是否包含该数据,并且返回存在该数据的下标。测试得到数据以及非法位置得到数据的报错。尾差,位置插入以及顺序表的打印。移除数据以及非法移除数据。更换数据以及非法位置更换数据。测试是否包含数据方法的实现。
2024-09-28 23:02:37
224
原创 JDK17语法新增特性
2.⼀些新增的特性1.前⾔从springboot3.0开始,已经不⽀持JDK8了。参考资料,来⾃官⽅博客:available?从3.0开始,转变为JDK17。官⽅维护的版本都是SpringBoot3.X的了, 但是之前的版本也是可以⽤的, 只是官⽅不再进⾏功能更新了综上所述,选⽤ Java 17,概括起来主要有下⾯⼏个主要原因1.JDK 17 是 LTS (⻓期⽀持版),可以免费商⽤到 2029 年。⽽且将前⾯⼏个过渡版(JDK 9-JDK 16)去其糟粕,取其精华的版本;2.
2024-09-27 16:27:42
859
原创 JavaSe7------类和对象
Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面 向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序,更符合人 们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好。面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要 开发人员告诉给计算机什么是洗衣机。上图左侧就是对。
2024-09-10 20:49:22
907
原创 JaveSe6------数组的定义与使用
数组:可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。比如现实中的车库:在java中,包含6个整形类型元素的数组,就相当于上图中连在一起的6个车位,从上图中可以看到:1. 数组中存放的元素其类型相同2. 数组的空间是连在一起的3. 每个空间有自己的编号,起始位置的编号为0,即数组的下标。那在程序中如何创建数组呢?
2024-09-03 10:01:37
1012
原创 JavaSe5------方法的使用
方法就是一个代码片段. 类似于 C 语言中的 "函数"。方法存在的意义(不要背, 重在体会):1. 是能够模块化的组织代码(当代码规模比较复杂的时候).2. 做到代码被重复使用, 一份代码可以在多个位置使用.3. 让代码更好理解更简单.4. 直接调用现有方法开发, 不必重复造轮子比如:现在要开发一款日历,在日历中经常要判断一个年份是否为闰年,则有如下代码:System.out.println(year+"年是闰年");}else{
2024-08-31 22:45:40
785
1
原创 JavaSe3------运算符
计算机的最基本的用途之一就是执行数学运算,比如:上述 + 和 < 等就是运算符,即:对操作数进行操作时的符号,不同运算符操作的含义不同。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * /)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。
2024-08-29 21:38:45
939
原创 JavaSe2------数据类型与变量
【本节目标】1. 字面常量2. 数据类型3. 变量tip:idea中Src目录下对应的是源代码 .javaOut目录下对应的是字节码目录 .class。
2024-08-29 20:59:34
824
原创 JavaSe1------初识java
Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和 跨平台部署的支持环境,并广泛应用于嵌入式系统移动终端企业服务器大型机等各种场合。
2024-08-28 00:42:39
1127
1
原创 C语言中的预编译详解
C语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理的。基本语法:#define name(名字) stuff(内容);用更形象的符号来替换实现一种效果(这里实现的是死循环)break 在写CASE的时候自动把break写上例如:如果定义的 stuff过长,可以分成几行来写,除了最后一行以外,每行的后面都要加上反斜杠(续航符)。大家来想一想,define来定义标识符的时候,要不要最后加上;?比如:建议不要加上。
2024-03-17 16:52:06
1682
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅