| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 渣硕虾皮shopee校招一面面经 -> 正文阅读 |
|
[网络协议]渣硕虾皮shopee校招一面面经 |
Shopee一面问题: 1.自我介绍; 2.简述C++ 11版本的智能指针; 3.简述C++析构函数; 4.TCP/IP协议都有哪些?TCP4次挥手的流程; 5.cookie和session各自的含义和区别; 6.http协议的5种状态码及其对应的信息; 7.进程和线程的区别; 8.手撕代码:用两个栈实现队列的入队和出队功能,并利用main测试功能; 9.哈希函数的结构;哈希冲突是什么;怎么解决哈希冲突。 答案整理: 1.自我介绍:略。 2.C++11的智能指针: 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生命周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄露。C++11中最常用的智能指针类型为shared_ptr。智能指针的作用是管理一个指针。 3.C++析构函数: 类的构造函数是类的一种特殊成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称完全相同的,并且不会返回任何类型,也不会返回void。构造函数可用于为某些成员变量设置初始值。 类的析构函数是类的一种特殊成员函数,它会在每次删除所创建的对象时执行。析构函数的名称与类的名称是完全相同的,只在函数名前加“~”作为前缀,不返回任何值也不带任何参数。析构函数有助于在跳出程序前释放资源。 4.TCP/IP协议都有哪些?TCP4次挥手的流程: TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP?和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。 TCP四次挥手: 1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。 5.cookie和session各自的含义和区别: 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。 Cookie通过在客户端记录信息确定用户身份:cookie在服务端产生再发给客户端保存,当客户端再访问时,服务器可根据cookie辨识客户端。 Session通过在服务器端记录信息确定用户身份:session默认被存在服务器的一个文件里(不是内存)。 6.http协议的5种状态码及其对应的信息: 1xx:接受的信息正在处理; 2xx:请求正常,处理完毕; 3xx:重定向,资源位置发生变动,需客户端重新发送请求; 4xx:客户端错误,请求报文有误,服务器无法处理; 5xx:服务器错误,服务器在处理请求时内部发生错误。 7.进程和线程的区别: 进程是资源分配的最小单位,线程是CPU调度的最小单位。 线程在进程下行进;一个进程可以包含多个线程;不同进程间数据很难共享;同一进程下不同线程间数据很易共享;进程要比线程消耗更多的计算机资源;进程间不会相互影响,一个线程挂掉将导致整个进程挂掉。 8.手撕代码:用两个栈实现队列的入队和出队功能,并利用main测试功能:
9.哈希函数的结构: 1)哈希概念: 构造一种储存结构,通过某种函数,使得其元素的储存位置与他的关键码之间能够建立一一映射关系,那么在查找时通过该函数很快找到相应元素。简言之,就是设定某一固定函数(hashFunc),通过此函数来使插入元素的值与元素位置相对应,往后我们需要查找此元素时就可以通过此函数(hashFunc)找到该值。 2)哈希函数: 散列函数又称散列算法、哈希函数、是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值的指纹。散列值通常用一个短的随机字母和数字组成的字符串来表示。哈希函数使得计算出来的地址均匀分布在整个空间。 3)插入&搜索函数: 根据待插入的元素的关键码,根据哈希函数计算出其存储位置。 4)哈希冲突: 当出现插入一个元素,其根据哈希函数地址计算出的地址,已经被其他元素所占用的情况称为哈希冲突。为了能够更好地识别当前位置是否被占用,我们需要对每一个位置进行标记。注:当删除某一元素时,不能直接将其删除,如果直接删除会对当前结构产生影响,导致其他元素的搜索出错,所以当我们要删除一个元素时,需要将其标记为删除,而非空。 5)解决哈希冲突的方法:
6)开散列: |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:18:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |