Python面试总结(四)ip正则与三次握手四次挥手

1.请简述值传递和引用传递的区别?


值传递仅仅传递的是值
引用传递,传递的是内存地址,修改后会改变内存地址对应储存的值。



2.请手写一个匹配ip的正则表达式?

第一种方法:
((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)


第二种方法:
(?:(?:1[0-9][0-9]\.)|(?:2[0-4][0-9]\.)|(?:25[0-5]\.)|(?:[1-9][0-9]\.)|(?:[0-9]\.)){3}(?:(?:1[0-9][0-9])|(?:2[0-4][0-9])|(?:25[0-5])|(?:[1-9][0-9])|(?:[0-9]))$



3.mysql数据库的优化?



1、选取最适用的字段属性
2、使用连接(JOIN)来代替子查询(Sub-Queries)
3、使用联合(UNION)来代替手动创建的临时表
4、事务
5、锁定表
6、使用外键
7、使用索引

8、优化的查询语句


4.谈谈你对python多线程的理解?


线程是进程的一个实体,是CPU进行调度的基本单位,
它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,
只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),
但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.


一个进程至少有一个线程.
线程的划分尺度小,使得多线程程序的并发性高。
多个线程共享内存,从而极大地提高了程序的运行效率
线程不能够独立执行,必须依存在进程中
线程执行开销小,但不利于资源的管理和保护



5.redis中的事务和mysql中的事务有什么区别?


mysql中一个中小型的网络数据库,比oracle和sqlserver小, 
但是并发能力远超过acess这样的桌面数据库。


redis是一个支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。
可以认为redis比mysql简化很多。
mysql支持集群。
现在大量的软件使用redis作为mysql在本地的数据库缓存,然后再适当的时候和mysql同步.


6.请简述什么是三次握手和四次挥手?为什么要这样?


TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:


位码即tcp标志位,有6种表示:
SYN(synchronous建立连接)
ACK(acknowledgement 表示响应、确认)
PSH(push表示有DATA数据传输)
FIN(finish关闭连接)
RST(reset表示连接重置)
URG(urgent紧急指针字段值有效)


三次握手:


第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),
同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),
此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
      握手过程中传送的包里不包含数据,三次握手完毕后,
客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,
在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。
      确认号:其数值等于发送方的发送序号+1(即接收方期望接收的下一个序列号)。

四次挥手:
与建立连接的“三次握手”类似,断开一个TCP连接则需要“四次挥手”。
第一次挥手:主动关闭方发送一个FIN,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但是,此时主动关闭方还可以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给对方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号)。
第三次挥手:被动关闭方发送一个FIN,用来关闭被动关闭方到主动关闭方的数据传送,也就是告诉主动关闭方,我的数据也发送完了,不会再给你发数据了。
第四次挥手:主动关闭方收到FIN后,发送一个ACK给被动关闭方,确认序号为收到序号+1,至此,完成四次挥手。


TCP的四次挥手过程(简言之):主动关闭方向被动关闭方发送不会再给你发数据了的信息;被动关闭方对收到的主动关闭方的报文段进行确认;被动关闭方向主动关闭方发送我也不会再给你发数据了的信息;主动关闭方再次对被动关闭方的确认进行确认。




(1)TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;
主机A再次对主机B的确认进行确认。
(2)采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。
失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,
于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。
考虑这样一种特殊情况,主机A第一次发送的连接请求并没有丢失,
而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,
于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,
主机B就一直在等待主机A发送数据,导致主机B的资源浪费。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android相关sdk使用

SimpleDateFormat使用详解 Android_AlertDialog 两分钟彻底让你明白Android Activity生命周期(图文)!Android布局控件之LinearLayout详解Relative Layout如何正确地使用android中的progressdialog android的Menu使用android Toast大全(五种情形)建立属于…

[Kaggle] Digit Recognizer 手写数字识别(卷积神经网络)

文章目录1. 使用 LeNet 预测1.1 导入包1.2 建立 LeNet 模型1.3 读入数据1.4 定义模型1.5 训练1.6 绘制训练曲线1.7 预测提交2. 使用 VGG16 迁移学习2.1 导入包2.2 定义模型2.3 数据处理2.4 配置模型、训练2.5 预测提交Digit Recognizer 练习地址 相关博文: [Hands …

SparkCore基础

目录 Spark简介 1 什么是Spark 2 Spark特点 3 Spark分布式环境安装 3.1 Spark HA的环境安装 3.2 动态增删一个worker节点到集群 4 Spark核心概念 5 Spark案例 5.2 Master URL 5.3 spark日志的管理 5.4 WordCount案例程序的执行过程 6 Spark作业运行架构图&#xff…

python面试总结(五)内存管理与MYSQL引擎选择

1.python是如何进行内存管理的?当内存中有不再使用的部分时,垃圾收集器就会把他们清理掉 Python引入了机制:引用计数与分代回收。 Python提供了对内存的垃圾收集机制, 但是它将不用的内存放到内存池而不是返回给操作系统。 2.谈…

Codeforces 374A - Inna and Pink Pony

原题地址:http://codeforces.com/contest/374/problem/A 好久没写题目总结了,最近状态十分不好,无论是写程序还是写作业还是精神面貌……NOIP挂了之后总觉得缺乏动力精神难以集中……CF做的也是一塌糊涂,各种pretest passed fail…

LeetCode 1320. 二指输入的的最小距离(动态规划)

文章目录1. 题目2. 解题1. 题目 二指输入法定制键盘在 XY 平面上的布局如上图所示,其中每个大写英文字母都位于某个坐标处, 例如字母 A 位于坐标 (0,0),字母 B 位于坐标 (0,1),字母 P 位于坐标 (2,3) 且字母 Z 位于坐标 (4,1)。 …

Python面试常用二十题总结

1.请至少用一种方法下面字符串的反转? 1).A[::-1] 2).交换前后字母的位置 t list(A) l len(t) for i, j inzip(range(l - 1, 0, -1), range(l // 2)): t[i], t[j] t[j], t[i] return"".join(t) 3). 递归的方式, 每次输出一个字符 defstring_re…

SparkStreaming基础

目录 SparkStreaming基础 1 流式计算 1.1 常见的离线和流式计算框架 2 SparkStreaming简介 2.1 核心概念DStream 2.2 工作原理 2.3 Storm,SparkStreaming和Flink的对比 2.4 如何选择流式处理框架 3 SparkStreaming实时案例 3.1 StreamingContext和Receiver…

【Kaggle微课程】Natural Language Processing - 1. Intro to NLP

文章目录1. 使用 spacy 库进行 NLP2. Tokenizing3. 文本处理4. 模式匹配练习:食谱满意度调查1 在评论中找到菜单项2 对所有的评论匹配3 最不受欢迎的菜4 菜谱出现的次数learn from https://www.kaggle.com/learn/natural-language-processing 1. 使用 spacy 库进行…

谈一谈HTTP中Get与Post的区别与主要应用场景

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而H…

Python基础(一)--初识Python

目录 Python基础(一)--初识Python 1 Python基本概念 1.1 什么是Python 1.2 Python的语言特征 1.3 Python的应用领域 2 Python开发环境 2.1 Windows操作系统 2.2 Linux / Mac操作系统 2.3 Python虚拟环境 2.4 Python开发工具 3 环境变量 4 变量…

【Kaggle微课程】Natural Language Processing - 2.Text Classification

文章目录1. bag of words2. 建立词袋模型3. 训练文本分类模型4. 预测练习:1. 评估方法2. 数据预处理、建模3. 训练4. 预测5. 评估模型6. 改进learn from https://www.kaggle.com/learn/natural-language-processing NLP中的一个常见任务是文本分类。这是传统机器学…

淡定啊,学习啊

最近一直在背单词,已经忽略本质工作,写代码。这个要改啊,本职的代码还是要写的,不然怎么吃饭啊。发现这个还是昨天晚上看了会js,发现一个很好的特性,一阵狂喜,后来仔细一想是,最近荒…

Django框架—富文本编辑器

借助富文本编辑器,网站的编辑人员能够像使用offfice一样编写出漂亮的、所见即所得的页面此处以tinymce为例,其它富文本编辑器的使用也是类似的在虚拟环境中安装包 pip install django-tinymce2.6.0安装完成后,可以使用在Admin管理中&#xf…

Python基础(二)--数据类型,运算符与流程控制

目录 Python基础(二)--数据类型,运算符与流程控制 1 数据类型 1.1 Python中的数据类型 1.2 整数类型(int) 1.3 布尔类型 1.4 浮点类型 1.5 复数类型 1.6 类型转换 2 运算符 2.1 算术运算符 2.2 布尔运算符 …

求二维数组的转置矩阵

1 /*2 求二维数组的转置矩阵3 输入4 两个整数n和m 5 n行m列的二维数组 6 输出7 输出该二维数组的转置矩阵 8 数据范围9 0<n<20; 0<m<20; 10 */ 11 #include<stdio.h> 12 int main() 13 { 14 int a[20][20]; 15 int b[20][20]; 16 …

【Kaggle微课程】Natural Language Processing - 3. Word Vectors

文章目录1. 词嵌入 Word Embeddings2. 分类模型3. 文档相似度练习&#xff1a;1. 使用文档向量训练模型2. 文本相似度learn from https://www.kaggle.com/learn/natural-language-processing 1. 词嵌入 Word Embeddings 参考博文&#xff1a;05.序列模型 W2.自然语言处理与词…

Django搜索工具——全文检索

全文检索不同于特定字段的模糊查询&#xff0c;使用全文检索的效率更高&#xff0c;并且能够对于中文进行分词处理haystack&#xff1a;全文检索的框架&#xff0c;支持whoosh、solr、Xapian、Elasticsearc四种全文检索引擎&#xff0c;点击查看官方网站whoosh&#xff1a;纯Py…

LeetCode 787. K 站中转内最便宜的航班(Dijkstra最短路径 + 优先队列)

文章目录1. 题目2. 解题1. 题目 有 n 个城市通过 m 个航班连接。每个航班都从城市 u 开始&#xff0c;以价格 w 抵达 v。 现在给定所有的城市和航班&#xff0c;以及出发城市 src 和目的地 dst&#xff0c;你的任务是找到从 src 到 dst 最多经过 k 站中转的最便宜的价格。 如…

Windows Phone 资源管理与换肤思考

Windows Phone 资源管理与换肤思考 原文 Windows Phone 资源管理与换肤思考 新入手一台Windows 8的笔记本&#xff0c;安装了VS2013后&#xff0c;终于又可以开发WP了。公司暂时不愿意开发WP&#xff0c;那么咱就自行研究吧&#xff01; 在没有WP开发环境的时候&#xff0c;曾经…