- 博客(61)
- 收藏
- 关注
原创 会话技术+请求转发+重定向
其实,在访问一个网站时,在HTTP请求中往往会携带一个cookie,这个cookie的名字是JSESSIONID,这个JSESSIONID表示的就是session的id,这个是由服务器创建的,并且是唯一的。重定向:服务器指导的客户端行为,客户端发出一个请求,被服务器接收处理之后,服务器给客户端一个响应(一个新的地址),当客户端接收到新的地址之后,立马发起第二次请求,服务器接收并响应。有状态会话是指在网络通信过程中,服务器需要记住客户端的状态信息,以便后续的通信能够继续使用这些信息。
2023-12-16 22:54:49
511
原创 mysql语句练习
SELECT student.* FROM student,teacher,score,course WHERE student.s_id=score.s_id AND score.c_id=course.c_id AND course.t_id=teacher.t_id AND teacher.t_name="张三"
2023-12-09 22:06:15
479
原创 利用jdbc对数据库进行增删改查
6,如果是查询操作,利用ResultSet处理数据,再回收resultset对象,回收statement对象,回收connnection对象。如果是删除,修改,添加,不需要ResultSet处理数据,直接回收statement对象,回收connnection对象。4,创建 statement对象。3,输入信息,进行数据库连接。在这个过程中用到的类。
2023-12-09 22:03:18
529
原创 树
有右孩子 parent.right=target.right。如果是父亲节点的右孩子 parent.right=null。如果是父亲节点的左孩子 parent.left=null。4.如果有父亲节点 确定target是parent的左孩子还是右孩子。4.有父亲节点 确定target是parent的左孩子还是右孩子。2.找要删除节点的父亲节点 parent(考虑有没有父亲节点)2.找要删除节点的父亲节点 parent(考虑有没有父亲节点)
2023-11-14 21:01:54
152
原创 两个队列实现一个栈
基本思路:把数据入队列1,数据一次出队列到队列2,剩最后一个数据出队列1后不再参与计算,循环这方法直到数据都出队列1后不再参与计算,即实现栈。要用两个队列实现栈,就需要了解栈和队列的特性,栈是。
2023-11-08 16:33:27
77
原创 两个栈实现队列
要用两个栈实现队列,就需要了解栈和队列的特性,栈是先进后出,队列是先进先出。基本思路是,把数据先压入栈1中,然后数据在栈1中输出再压入栈2,输出后就能实现队列的先进先出。
2023-11-07 22:40:00
110
原创 LinkList集合方法(自写)
在使用以下方法时需要定义一个LinkNode类来定义变量,new一个新对象进行调用,输出时需要定义输出方法。定义下面方法时需要提前定义头指针。12.翻转链表,在链表上直接翻转。10.判断成环链表的起始节点。5.查找某个元素是否在链表上。8.找中间节点,只遍历一次。11.截取单链表后k个节点。9.判断链表是否成环。
2023-11-07 22:19:23
100
原创 ArrayList集合方法(自写)
以下方法在使用时需要new一个新对象调用,输出时需要一个输出方法,否则输出的是地址。3.删除第一个复合条件的元素。4.删除所有复合条件的元素。
2023-11-07 22:05:57
256
1
原创 Java当中的队列
队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。LinkedList链表。peek/element:查看头部元素;如果队列为空,peek返回null,element报异常。poll/remove:删除;如果队列为空,poll返回null,remove报异常。offer/add:添加;如果满了之后,offer返回false,add报异常。
2023-11-07 11:06:31
275
原创 LinkdeList集合
Object set(int index,Object element) 用于用新元素替换链表指定位置的元素。1.boolean add(Object element) 将元素附加到链表末尾。3.void addFirst(E element) 将元素附加到链表头部。2.E remove(int location) 删除指定位置的元素。3.E removeFirst() 删除并返回链表头部的第一个元素。4.E removeLast() 删除并返回链表尾部的第一个元素。.clear() 删除链表中所有元素。
2023-11-07 10:54:45
66
原创 ArrayList集合2
get(i)==null : x.equals(get(i)))条件的最低索引i的元素时才会返回true。⑩.remove(Object x)删除列表中第一次出现的指定元素,删除成功返回true,否则返回false。⑨.remove(int index)删除指定位置的元素,并返回被删元素,删除位置如果有元素则往前移。⑦.isEmpty()判断列表中是否包含元素,不包含返回true,否则返回false。11./// iterator()返回适当顺序在列表的元素上进行迭代的迭代器。
2023-11-02 19:08:33
383
原创 ArrayList集合1
⑤set(int i,Object element) 是元素element替换索引为i位置上的元素,并返回替换的元素。④add(int index,Object element)表示在指定位置添加元素,原位置后的元素后移。2.ArrayList内部封装了一个Object类型的对象,初始长度为10,且长度可变。③get(int index)获取列表指定位置的元素,index从0开始。3.ArrayList集合查询快,但是增删慢。1.ArrayList是集合的一个实现类。2.ArrayList集合的一些方法。
2023-11-01 21:33:56
105
原创 web——css样式
media (not/only not除了这个设备/only只有这个设备,可以加可以不加)设备类型(and 设备特征)图片的对比度 contrast() 默认是1,也可以设置百分比。3.1 width 设备宽度 max-width min-width。图片的灰度 grayscale() 默认是0,可以设置百分比。服务器字体:在不同的电脑,不同的操作系统,不同的浏览器之间字体风格的通体。2.4 projection 投影仪。2.1 sereen 计算机屏幕。2.2 print 打印机。
2023-10-31 10:29:41
72
原创 Java八大排序——快速排序
快速排序是一种常用的排序算法,它的基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后再按此方法对这两部分记录分别进行快速排序,以达到整个序列有序的目的。其中,引用中的代码实现了快速排序的主要逻辑,通过递归实现了对数组的分区和排序。7.以基准数为起始点,分成左右两部分,重复上述所有步骤,直到数据都被拆分开为止。2.定义指针j 从后往前移动,查找第一个比基准数小的数值,停止。3.定义指针i 从前往后移动,查找第一个比基准数大的数值,停止。
2023-10-30 22:23:46
797
原创 Java八大排序——归并排序
归并排序是一种基于分治思想的排序算法,它将待排序的序列分成若干个子序列,每个子序列都是有序的,然后再将这些有序的子序列合并成一个有序的序列。归并排序的时间复杂度为O(nlogn),是一种稳定的排序算法。除了排序外,归并算法还可以用于求逆序对等问题。1.定义左指针left,右指针right和中间指针mid=(left+ringht)/2 进行拆分,直到拆分成一个一个停止。拆分:在中间位置分成左右两部分,继续拆分,直到拆分成一个一个停止。先拆分后合并,在合并的过程中借助临时空间进行排序。
2023-10-30 20:06:05
190
原创 web——css样式——动画效果(2)
linear(匀速),ease(由慢到快,达到最快的时候由快到慢) ease-in(由慢到快)animation-iteration-count: 设置动画执行的次数 infinite(无限次)ease-out(由快到慢),ease-in-out(由快到慢,到达最慢的时候由慢到快)animation-direction: 设置动画方向 alternate(交替)animation-timing-function: 设置动画变换函数;from(开始帧)|to(结束帧)|百分数(在多少帧){
2023-10-28 21:22:34
106
原创 web——css样式——动画效果(1)
linear(匀速),ease(由慢到快,达到最快的时候由快到慢) ease-in(由慢到快)ease-out(由快到慢),ease-in-out(由快到慢,到达最慢的时候由慢到快)transition-property: 设置过度动画的变形属性 all监听所有属性的变化。transition-timing-function: 设置过度动画变换函数;transition-duration: 设置过度动画的持续时间。transition-delay: 设置过度动画延迟时间。
2023-10-28 21:13:20
87
原创 Java八大排序——基数排序
基数排序的时间复杂度为O(d(n+r)),其中d是位数,n是元素个数,r是基数。但是,基数排序的缺点是需要额外的空间来存储桶或计数器,而且对于数据范围较大的排序场景,其时间复杂度会变得很高。1.定义0-9十个桶,按照个位,十位,百位……3. 当向桶里方数据时,需要判断桶里有没有数据,就需要记录工具,所以可以用一个数组来记录十个桶。2.可以使用二维数组来定义桶,一个有十个桶,每个桶可以存放数组的长度个数据。5.将数据放入桶中,遍历桶记录和桶数据并取出,然后再清除桶记录,直到有序为止。
2023-10-27 23:03:47
49
原创 Java八大排序——堆排序(附Java代码)
在实际的代码操作中,不需要构建完全二叉树,直接在数组中找到父亲节点和左右孩子节点,arr[i]父亲节点为arr[(i-1)/2],arr[i]的左孩子arr[2i+1],arr[i]的右孩子arr[2i+2]。5.如果子节点大于父亲节点,则父子节点进行交换,parent指向child,child指向其左孩子,重复3-5,直到父节点的值大于子节点,或者没有孩子节点。3.判断parent有没有右孩子,如果有右孩子,左右孩子进行比较,child指向左右孩子当中的最大值。大顶堆的根节点是堆中的最大值。
2023-10-24 12:08:53
88
原创 Java八大排序——希尔排序
希尔排序的基本思想是将待排序的数组元素按照一定的间隔分成若干个子序列,然后对各个子序列进行插入排序,使整个数组变得基本有序。接着缩小间隔,再次进行排序,直到间隔为1时,完成排序。希尔排序的优点是可以在大规模数据下进行排序,缺点是增量的选择比较困难。3.直到无法分组,所以数组变成一组,(步长为1),插入排序,结束。2.按照数组长度的一半的一半为间隔进行分组,在组内进行插入排序。第一步 :数组长度为六,第一轮分组步长为3,在组内进行插入排序。1.按照数组长度的一半为间隔进行分组,在组内进行插入排序。
2023-10-22 22:45:32
49
原创 平衡二叉树的四种旋转
平衡二叉树是一种特殊的有序二叉树,它的左右子树的高度差不超过1,这样可以保证树的高度始终在log(n)级别,从而保证了树的查找、插入、删除等操作的时间复杂度都是O(log(n))。在插入或删除节点时,需要通过旋转操作来保持树的平衡。其中,LL型、RR型、LR型、RL型是常见的旋转操作。在旋转操作中,需要保证降低树的高度和保持二叉排序树的性质。在构建平衡二叉树时,经常出现二叉树不平衡的现象,为了达到平衡就需要使用特殊的方法使二叉树变成平衡二叉树。LR型 。
2023-10-22 12:01:51
91
原创 数据结构——时间复杂度
其中,O(1)表示算法的执行时间不随输入规模的增加而增加,O(n)表示算法的执行时间随输入规模的增加而线性增加,O(n^2)表示算法的执行时间随输入规模的增加而平方级增加。1.y=ax+b a为系数,b为常数 当x足够大时,a和b对y的影响不大,所以y的值与x直接相关,即y=x 时间复杂度为O(n)2.y=ax^2+bx+c 当x足够大时,系数和常数影响不大,x的一次方不足以影响x^2,即y=x^2 时间复杂度为O(n^2)4.a^y=x y=logax 时间复杂度为O(logn)
2023-10-22 10:36:27
51
原创 数据结构
树:包括二叉树和多叉树。其中二叉树包括完全二叉树,满二叉树,有序二叉树,平衡二叉树,红黑树,哈夫曼树。多叉树包括B树和B+树。线性表:包括顺序表(数组,地址连续存储)和 链表(地址不连续存储)链表包括单项链表和双向链表。数据结构:是对大规模数据做一个合理的规划,提高操作效率,数据结构针对大规模数据,对小规模数据没有意义。数据结构包括线性表,栈和队列,哈希表,树,图。栈:栈内的数据遵循先进后出的特点。队列:队列内的数据遵循先进先出的特点。
2023-10-22 10:24:18
40
原创 Java八大排序——插入排序
插入排序是一种简单而高效的排序算法,其基本思想是将一个待排序的数组分为已排序和未排序两部分,每次从未排序部分中取出一个元素,插入到已排序部分的合适位置,直到所有元素都被插入到已排序部分为止。插入排序的时间复杂度为O(n^2),但是在实际应用中,插入排序的效率比冒泡排序和选择排序要高,尤其是对于部分有序的数组,插入排序的效率更是非常高。
2023-10-21 23:02:11
158
原创 Java八大排序——冒泡排序(附Java代码)
冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。第二趟排序:在剩下的三个元素中,前后两两比较,前面的数大于后面的数则两个数交换位置。第三趟排序:比较剩下的两个元素,前面的数大于后面的数则两个数交换位置。第一趟排序:前后两两比较,前面的数大于后面的数则两个数交换位置。排序后:{1,5,7,3}排序后:{1,3,7,5}排序后:{1,3,5,7}数组{5,1,7,3}
2023-10-21 22:48:31
2265
原创 数据结构
树:包括二叉树和多叉树。其中二叉树包括完全二叉树,满二叉树,有序二叉树,平衡二叉树,红黑树,哈夫曼树。多叉树包括B树和B+树。线性表:包括顺序表(数组,地址连续存储)和 链表(地址不连续存储)链表包括单项链表和双向链表。:是对大规模数据做一个合理的规划,提高操作效率,数据结构针对大规模数据,对小规模数据没有意义。数据结构包括线性表,栈和队列,哈希表,树,图。队列:队列内的数据遵循先进先出的特点。栈:栈内的数据遵循先进后出的特点。
2023-10-21 16:40:25
41
原创 算法——进程
进程是程序在处理机上的一次执行过程,是操作系统中进行资源分配和独立运行的基本单位。它由程序代码、数据和进程控制块三部分组成,具有状态、生命周期等特征,可以创建进程,同时也可以被操作系统挂起或销毁进程。进程是操作系统进行资源分配、调度和管理的基本单位。
2023-10-19 16:17:40
32
原创 数独的生成
问题描述:数独是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个九宫格内的数字均含1-9,不重复要求:设计算法随机生成不同难度的数独游戏,阐述如何评价所生成数独的难度。对于数独程序,主要需要解决两个问题:数独生成、数独求解。目前影响比较大,功能比较完善的数独程序有:Hodoku、Sudoku Explainer。要实现数独的生成,就要先理清每一个位置的约束条件,经我们小组讨论发现,每个位置的数需要满足四个约束条件:首先,这个格子里不
2023-10-18 21:02:43
534
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人