- 博客(34)
- 收藏
- 关注
原创 八股文学习第七天| TCP连接三次握手的过程,为什么是三次,可以是两次或者更多吗?,TCP连接四次挥手的过程,为什么是四次?,HTTP的Keep-Alive是什么?TCP 的 Keepalive 和
答:四次挥手的过程第一次挥手:客户端发送一个FIN报文给服务端,表示自己要断开数据传送,报文中会指定一个序列号(seq=x)。然后,客户端进入FIN-WAIT-1状态。第二次挥手:服务端收到FIN报文后,回复ACK报文给客户端,且把客户端的序列号值+1,作为ACK报文的序列号(seq=x+1)。然后,服务端进入状态,客户端进入FIN-WAIT-2状态。第三次挥手:服务端也要断开连接时,发送FIN报文给客户端,且指定一个序列号(seq=y+1),随后服务端进入LAST-ACK状态。
2024-07-29 20:04:43
300
原创 二叉树篇--代码随想录算法训练营第十二天| 二叉树理论基础,二又树的递归遍历,二叉树的迭代遍历,二叉树的统一迭代法,二叉树的层序遍历
递归和迭代遍历相似处:入栈出栈均来自用来向下传递。
2024-07-29 19:51:48
158
原创 八股文学习第六天| TCP连接如何确保可靠性,既然提到了拥塞控制,那你能说说说拥塞控制是怎么实现的嘛,TCP流量控制是怎么实现的?UDP怎么实现可靠传输
答:TCP通过差错控制(序列号、确认应答、数据校验)、超时重传、流量控制、拥塞控制等机制,确保了数据传输的可靠性和效率。
2024-07-27 13:15:26
865
原创 栈和队列篇--代码随想录算法训练营第十一天|150.逆波兰表达式求值,239.滑动窗口最大值,347.前 K 个高频元素
头文件: # include < queue > 在队列的基础上将内部进行排序, 默认降序, 只能访问头部1、构造函数2、成员函数。
2024-07-27 13:02:07
553
原创 bjtu数据库课程设计--基于Spring Boot框架的门店点餐系统
安装成功后打开IntelliJ IDEA,使用 Spring Boot 2.6.13框架,服务器URL窗口使用start.aliyun.com,语言选择java,类型选择Maven,jdk选1.8,java选8,打包选war,之后添加如下五个依赖项,点击创建。选好菜品后,点击购物车会看到当前已经选好的菜品表格,如果不想要某个菜品,则可以点击右边“舍弃”按钮,但需注意每点一次“舍弃”按钮菜品数量只会减1。用户中心会显示用户头像,昵称,性别,电话,生日,VIP等级。顾客点击用户登录/注册,进入登陆/注册界面。
2024-07-27 11:09:17
845
原创 栈和队列篇--代码随想录算法训练营第十天| 栈和队列基础知识,栈和队列常用操作,232.用栈实现队列,225. 用队列实现栈,20. 有效的括号,1047. 删除字符串中的所有相邻重复项
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。当调用pop/top操作时,将前n-1个数出队列并从重新从队尾入队,记录第n个数值,并对其进行出队列操作,如果是top则将第n个数再次从队尾入队,最后返回已记录的第n个数值。使用两个栈st1,st2。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(
2024-07-26 09:17:02
527
原创 八股文学习第五天| HTTPS和HTTP有哪些区别?,HTTPS的工作原理(HTTPS建立连接的过程)?,TCP和UDP的区别?
两者的主要区别在于安全性和数据加密: 主要基于 协议,确保了数据传输的安全性和完整性, 其建立连接并传输数据的过程如下:
2024-07-26 08:47:08
294
原创 八股文学习第四天| HTTP1.0和HTTP1.1的区别,HTTP2.0与HTTP1.1的区别,HTTP3.0有了解过吗?
1、HTTP1.0和HTTP1.1的区别持久连接:HTTP/1.1默认支持持久连接,允许在一个TCP连接上发送多个HTTP请求和响应,减少了连接建立和关闭的开销。而HTTP/1.0默认为短连接,每次请求都需要建立一个TCP连接,并通过Connection: keep-alive头来实现持久连接。 管道化:HTTP/1.1支持管道化(不是默认开启),允许客户端在第一个请求的响应到达之前发送多个请求,这可以减少等待时间,提高效率。HTTP/1.0不支持管道化。 缓存控制:HTTP1.0主要使用If
2024-07-25 18:37:40
292
原创 字符串篇--代码随想录算法训练营第九天| 151.翻转字符串里的单词,卡码网:55.右旋转字符串,28. 实现 strStr(),459.重复的子字符串,字符串总结 ,双指针回顾
字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。a,通过a的next值可以确定与末尾为a的后缀相同的最长公共前缀的末尾a位置,从前缀末尾a的后一位置开始(即b)重新匹配。当第i位置不匹配时,要对j进行回退,此时要保证i是不能改变的,因此回退要在判断“=”之前。kmp算法核心过程:f位置匹配失败,
2024-07-25 18:06:45
994
原创 八股文学习第三天| HTTP中常见的状态码有哪些?,什么是强缓存和协商缓存?
强缓存和协商缓存是HTTP缓存机制的两种类型,它们用于减少服务器的负担和提高网页加载速度。强缓存:客户端在没有向服务器发送请求的情况下,直接从本地缓存中获取资源。Expires强缓存:设置一个强缓存时间,此时间范围内,从内存中读取缓存并返回。但是因为Expires判断强缓存过期的机制是获取本地时间戳,与之前拿到的资源文件中的Expires字段的时间做比较来判断是否需要对服务器发起请求。这里有一个巨大的漏洞:“如果我本地时间不准咋办?”所以目前已经被废弃了。Cache-Control强缓存。
2024-07-24 11:59:51
389
原创 八股文学习第二天| HTTP请求报文和响应报文是怎样的,有哪些常见的字段?,HTTP有哪些请求方式?,GET请求和POST请求的区别?
答:HTTP报文分为请求报文和响应报文。(1) 请求报文 请求报文主要由请求行、请求头、空行、请求体构成。请求头的字段较多,常使用的包含以下几个:Host:请求的服务器的域名。Accept:客户端能够处理的媒体类型。Accept-Encoding:客户端能够解码的内容编码。Authorization:用于认证的凭证信息,比如token数据。Content-Length:请求体的长度。Content-Type:请求体的媒体类型。Cookie:存储在客户端的cookie数据。
2024-07-23 16:49:40
436
原创 哈希表篇章--代码随想录算法训练营第七天| 454.四数相加II,383. 赎金信,5. 三数之和,18. 四数之和
例如magazine为[a,b],ransomNote为[a,a],此时当匹配完一个a后,要对哈希表中a个数减一,否则会出现错误结果。相当于求字符串a和字符串b是否可以相互组成,而这道题目是求字符串a能否组成字符串b,而不用管字符串b 能不能组成字符串a。输出:[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]]输入:nums = [1,0,-1,0,-2,2], target = 0。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输出:[[2,2,2,2]
2024-07-23 11:35:49
561
原创 八股文学习第一天| 介绍一下TCP/IP模型和OSI模型的区别;从输入 URL 到页面展示到底发生了什么?
介绍一下TCP/IP模型和OSI模型的区别;从输入 URL 到页面展示到底发生了什么?
2024-07-22 15:27:33
319
原创 哈希表篇--代码随想录算法训练营第五天| 哈希表理论基础 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。该题不仅需要知道元素的值,也需要知道元素在数组中的位置下标,所以使用unordered_map,key为元素值,value为元素位置下标。由于题目输出结果元素唯一,因此无需考虑元素数量,并且此时只关心数组中元素值(key)不关心此元素值对应的value,所以综上使用。因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。,请你在该数组中找出。
2024-07-22 14:57:49
599
原创 代码随想录算法训练营第四天|24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点 ,面试题 02.07. 链表相交 ,142.环形链表II
2、当链表 headA 和 headB 都不为空时,创建两个指针 curA 和 curB,初始时分别指向两个链表的头节点 headA 和 headB,然后将两个指针依次遍历两个链表的每个节点。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。1、首先判断链表 headA 和 headB 是否为空,如果其中至少有一个链表为空,则两个链表一定不相交,返回 null。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。个结点,并且返回链表的头结点。
2024-07-20 12:03:29
907
原创 代码随想录算法训练营第二天 977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵Ⅱ,54.螺旋矩阵Ⅰ,剑指Offer 29.顺时针打印矩阵
LeetCode 209.长度最小的子数组。
2024-07-18 14:54:18
690
原创 代码随想录算法训练营第一天 | LeetCode 704. 二分查找,27. 移除元素,26.删除排序数组中的重复项,283.移动零,844.比较含退格的字符串,977.有序数组的平方
代码随想录算法训练营第一天 | LeetCode 704. 二分查找,27. 移除元素,26.删除排序数组中的重复项,283.移动零,844.比较含退格的字符串,977.有序数组的平方
2024-07-18 09:16:11
918
原创 类与对象(中)
(1)如果类中没有显式定义构造函数,则c++编译器会自动生成一个无参的默认构造函数,该构造函数对自定类型成员调用其默认成员函数,对内置类型不做处理。(3)一个类只能有一个析构函数,若为显式定义,系统会自动生成默认的析构函数,默认的析构函数对自定类型成员调用它的析构函数,对内置类型不做处理。原因:赋值运算符若不显示实现,编译器会自动生成一个默认的,此时若再实现一个全局的赋值运算符重载,就和编译器生成的默认赋值运算符重载冲突了。(2)考虑到(1)中的情况,我们可以在声明内置类型成员变量时给其缺省值;
2023-05-11 23:13:12
69
原创 类与对象(上篇)
和class定义类是一样的,区别是struct定义的类默认访问权限是public,class定义的类默认访问权限是private。,让该指针指向当前对象(函数运行时调用该函数的对象),在函数体中所有“成员变量”的操作,都是通过该指针去访问,只是用户不需要来传递,编译器自动完成。2、this指针本质时“成员函数”的形参,当对象调用成员函数时,将对象地址作为实参传递给this形参,因此对象中不存储this指针。3、this指针是“成员函数”第一个隐含的指针形参,无需用户传递。此时this指针就要发挥作用了!
2023-05-07 17:28:32
51
原创 c++中的引用
传值:以值作为参数或者返回值类型,在传参和返回期间,函数不会直接传递实参或者将变量本身直接返回,而是。,而是给已存在的变量去一个别名,编译器。例如:孙悟空,又称齐天大圣,弼马温等。类型& 引用变量名 = 引用实体。6、传值、传引用效率比较。7、引用和指针的区别。
2023-05-02 21:48:38
29
原创 详解缺省参数
在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。2、缺省参数不能在函数声明和定义中同时出现。3、缺省参数必须是常量或全局变量。依次来给出,不能间隔着给。
2023-05-01 16:23:27
272
原创 c++命名空间与输入输出
1、背景:在C/C++中,变量、函数和类都大量存在,这些变量、函数和类的名称都存在于全局作用域中,可能导致很多冲突。3、命名空间的定义:使用namespace关键字,后边跟命名空间的名字,然后接一对{}即可(4、同一工程中允许存在多个相同名称的命名空间,编译器最后会整合成同一个命名空间。5、C++输入&输出。
2023-05-01 16:03:27
34
原创 c语言实现三子棋游戏
大家好,今天向大家讲解一下三子棋游戏的实现过程。该游戏使用的语言是c语言,在实现过程中用到的知识有二维数组的创建与使用,构造函数,生成随机数,函数的封装等。练习此代码有助于初学c语言的同学巩固知识点。
2023-01-15 15:28:56
59
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人