- 博客(87)
- 收藏
- 关注
原创 5.会话列表测试用例
已有历史会话的用户:新注册用户:好友在线状态新建会话:搜索好友:未选择会话状态:选择会话:消息输入框为空:消息输入框不为空:
2025-11-10 18:44:09
514
原创 09.String类
本文系统介绍了Java中String类的核心知识。文章详细讲解了String类的常用方法,包括字符串构造、比较、查找、转换、替换、拆分和截取等操作,并强调了字符串不可变性的设计原理及其优势。
2025-07-23 16:58:25
586
原创 07.继承与多态
文章摘要: 本文主要介绍了Java中继承与多态的核心概念。在继承方面,详细讲解了继承的作用、语法规则、父子类成员访问方式、super关键字的使用、构造方法调用顺序以及访问权限控制等,强调继承能够实现代码复用并建立类之间的层次关系。多态部分则阐述了其概念、实现条件(继承、重写、父类引用),分析了向上转型与向下转型的应用场景及注意事项,并探讨了重写与重载的区别。此外,文章还对比了继承与组合的差异,指出组合在代码复用中的优势,并提醒避免在构造方法中调用可重写方法可能引发的风险。最后,总结了多态在降低代码复杂度和增
2025-07-03 16:37:34
943
原创 06.类与对象
摘要:本文系统介绍了Java面向对象编程的核心概念。首先阐述了面向对象与面向过程的区别,强调对象间交互的思想。其次详细讲解了类的定义、实例化过程,重点分析了this引用的作用与特性。然后深入探讨了构造方法、对象初始化机制和封装特性。此外,还介绍了静态成员、代码块(普通、构造、静态)的使用场景,以及内部类(实例、静态、局部)的分类和特点。最后讲解了对象打印时toString方法的重写。全文通过洗衣机和日期等日常实例,帮助理解Java面向对象编程的核心原理与实践方法。
2025-07-03 16:37:18
827
原创 05.数组的定义以及使用
本文系统介绍了Java数组的核心知识,包括:1. 数组概念与基本操作:数组是一种存储相同类型元素的连续内存结构,支持静态/动态初始化,可通过下标访问元素,常用遍历方式包括for循环和for-each;2. 数组的引用特性:作为引用类型,数组变量存储堆内存地址,参数传递时传递的是引用,需注意null引用问题;3. 典型应用场景:包括数据存储、方法参数传递(值传递与引用传递区别)和返回值;4. 常用算法实现:如数组转字符串、拷贝、求平均值、顺序查找、二分查找和冒泡排序;5. 二维数组:本质上是一维数组的数组,支
2025-06-28 17:07:43
690
原创 04.方法的使用
方法其实就是一个代码片段,类似于我们C语言中的“函数”。// 方法定义修饰符 返回值类型 方法名称([参数类型 形参 ...]){方法体代码;[return 返回值];PS:现阶段直接使用public static 固定搭配如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成void采用小驼峰命名如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开方法内部要执行的语句在java当中,方法必须写在类当中。
2025-06-24 17:04:55
617
原创 03.逻辑控制
Java程序控制结构摘要程序控制结构包含顺序、分支和循环三种结构。顺序结构按代码书写顺序执行;分支结构通过if-else和switch实现多条件判断,需注意break在switch中的重要性;循环结构包括while、for和do-while,可使用break终止循环或continue跳过当前迭代。输入通过Scanner类实现,输出使用System.out方法。随机数生成需创建Random对象。注意代码规范:避免多余分号,建议使用大括号,保持代码对齐。
2025-06-10 17:15:37
1050
原创 测试用例基础知识
测试用例 (Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。测试用例简单来说就是指导如何做测试的文档,该文档主要记录需要验证被测软件的是否满足需求。
2023-10-28 15:36:40
970
原创 基于Spring Boot和WebSocket的在线聊天室测试
项目旨在开发一个类似于微信聊天室的功能,让用户可以在线实时聊天,提高沟通效率。通过用户登录模块、用户注册模块、好友管理模块和消息传输模块的实现,用户可以在相同的频道里发送和接收消息,实现在线聊天的功能。登录页面(用户名:zhangsan,密码:123)
2023-10-08 17:41:19
1062
原创 Web Tour Server窗口闪现
以管理员身份打开cmd命令行,输入命令netstat -aon|findstr “1080”,查看1080端口占用情况。2.右击选择编辑,在最后一行加上pause,保存后重新打开Server窗口。输入taskkill /f /pid pid值 命令,终止占用的进程。1.打开该文件所在位置。
2023-09-23 12:01:00
575
原创 JZ42连续子数组的最大和
遍历整个数组,每当遇到一个新元素时有两种情况,要么加上它会更大,要么加上它会更小。所以dp的状态转换应该为:dp[i] = Math.使用动态规划,这里用dp[]数组表示以下标i为终点的最大连续子数组和。
2023-08-28 15:30:52
282
原创 JZ41数据流在的中位数
首先对于中位数,我们都知道,排序后如果是数组长度是奇数,中位数就是中间的值,也就是n/2的值。如果数组长度是偶数,那么中位数就是中间两个值相加除2,也就是 a= n/2;中位数=(a+b)/2。这样看来我们需要一个排序后的数组,由题意可知这个数组不断在变长,如果增加一个元素排序一次未免不合理,那么我们这里直接使用插入排序。
2023-08-28 15:30:13
208
原创 JZ38 字符串的排列
这里就要用到剪枝操作了,将整个数组排序后,相同元素必然相邻,在同一层的相同元素要进行剪枝操作,当vis[i-1]=false,相邻且arr[i-1]没有被访问过时,就表示当前是同一层。在本题中直接跳过arr[i]作为dfs开头的路径就ok。首先我们来说全排列,设置一个vis数组来记录当期元素是否被使用过,然后dfs遍历整个数组,列出所有符合条件的路径就是全排列。那么如果数组中有相同元素,将其作为路径开头是不是就会出现路径重复的问题呐?这里用到了全排列和剪枝。
2023-08-13 16:54:55
285
原创 JZ37序列化二叉树
进行反序列化的时候,首先处理空树的情况,也就是说如果字符串是”#“表示这是一个空树。首先,序列化就是将二叉树的节点值放入一个字符串中,这里可以按照前序遍历的思路来进行操作,谦虚遍历是:根左右的情况,其中根据题意我们用"#"来表示空节点,用!由于我们在序列化的时候采用的是前序遍历,因此在反序列化的过程中,我们也要采用前序遍历。在前序递归函数中,如果遇到非空节点会将其添加到str中,当然也包括表示节点与节点间分割的!首先处理空树的情况,在空树时,我们返回”#“,然后调用递归函数前序递归遍历二叉树。
2023-08-13 16:54:10
231
原创 JZ36二叉搜索树与双向链表
创建两个指针,一个指向head,一个指向当前遍历的前一个节点也就是pre。先找到双向链表的头也就是树的最左边节点,初始化head和pre。处理中间根节点,然后开始连接pre和当前节点,连接后将pre更新为当前的节点,根据左根右的顺序,处理完左子树和根节点,就递归进入右子树继续进行处理。由题目可知,这里的二叉搜索树转成双向链表的符合左根右的逻辑顺序,且是一个递增序列。在递归的过程中,递归的出口就是节点为空。
2023-08-13 16:52:17
198
原创 J35复杂链表的复制
如果我们将拷贝后的节点插入到原始链表相应节点的后面,这时连接随机节点时,原始链表随机指针的后一个元素就是原始链表的随机节点,该节点的后一个节点就是拷贝出的新节点。我们在创建节点的时候,可能当前节点创建了,但是当前节点的随机指针指向的节点还没创建,这种情况下,我们只能连接next指向的节点,而不能连接随机节点。这里我们采用双指针的方法。
2023-08-13 16:51:38
145
原创 JZ34二叉树中和为某一值的路径
从根节点开始向左右子树进行递归操作,在递归操作中要处理的是当前路径更新,目标值更新,最后如果当前结点是叶子结点就要判断这条路径是否符合题目要求,如果符合就加到结果里面。这里求的是和为某一值的路径,要用dfs算法,也就是说这里使用深度优先搜索算法。
2023-08-13 16:50:53
108
原创 JZ33二叉搜索树的后序遍历序列
我们使用一个栈来存储当前的输入数组,也就是说,栈中先出的是根结点,如果数组元素小于栈顶元素,就表明此时它是左子树的根,大于栈顶元素就是右子树的根。通读题目后,我们可以得出,二叉搜索树是左子节点小于根节点,右子节点大于根节点。符合要求就是true,否则就是false。栈的特点是:先进后出。
2023-08-13 16:49:58
174
原创 JZ32 从上往下打印二叉树(Java)
首先,队列是尾部插入,头部删除的一种数据结构。在遍历树的过程中使用层序遍历的话,是从根开始由左向右进行遍历的,那么我们在遍历树的时候将当前根的结点存入到队列中去,遍历到结点时将其从队列中删除,这样一来,队列poll方法获取的队列的头就是按从上到下顺序的。也就是我们要的结果。不分行从上往下打印出二叉树的每个节点,同层节点从左至右打印。例如输入{8,6,10,#,#,2,1},如以下图中的示例二叉树,则依次打印8,6,10,2,1(空节点不打印,跳过),请你将打印的结果存放到一个数组里面,返回。
2023-08-12 22:37:11
276
原创 秋招备战笔试Day1
/...//...//...首先这是一个叫Base的类,有不带参数的构造方法,带一个参数的构造方法,这里构成了重载。有一个fun方法,还有一个Child继承了Base类。选项中所有的方法全是fun的方法,也就是说这里要与父类的fun方法构成一个重写的关系,重写的特点是:1、必须是在继承里,2、方法名、返回值类型、参数个数和参数类型 都必须相同3、派生类重写的方法的访问权限不能低于基类的权限4、派生类抛出的异常应该和基类相等或比基类更小。
2023-07-29 19:46:57
267
原创 非线程安全问题
也就是说,在这三个步骤中,如果有多个线程同时访问,那么很大概率会出现“非线程安全”问题。如果一个线程要执行run方法,首先要判断run方法是否上锁,如果上锁,说明有其他线程在调用run方法,这个线程就要进行等待,等待其他线程将run方法调用结束后,才能继续调用run方法。当一个线程想要执行同步方法里面的代码,它会首先尝试去拿到这把锁,如果能拿到,那么该线程就会执行同步方法中的代码。也就是说,一共创建了3个线程,每个线程有自己的count变量,在执行过程中自己减少自己的count变量的值。
2023-07-13 22:42:28
558
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅