笔试常考问题总结

Python面向对象

Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。

面向对象技术简介

类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

类变量:类变量在整个实例化的对象中是公用的,类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

数据成员:类变量或者实例变量,用于处理类及其实例对象的相关的数据。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程教方法的覆盖,也称为方法的重写。

实例变量:定义在方法中的变量,只作用于当前实例的类。

继承:即一个派生类继承类的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。

实例化:创建一个类的实例,类的具体对象。

方法:类中定义的函数。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

TCP与UDP的区别

1.TCP是面向连接;UDP是无连接的,即发送数据之前不需要建立连接;
2.TCP提供可靠的服务。也就是说,通过TCP连接传输的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠文件;
TCP通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制;
3.UDP具有较好的实时性,工作效率比TCP高,适用于高速传输和实时性有较高的通信或广播通信;
4.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;
5.TCP对系统资源要求较多,UDP对系统资源要求较少。

扫描二维码关注公众号,回复: 3323383 查看本文章

引用和指针的异同

1.引用必须被初始化,指针不必;
2.引用初始化以后不能被改变,指针可以改变所指的对象;
3.不存在指向空值的引用,但是存在指向空值的指针。

HTTP与HTTPS的区别

1.https协议需要到ca申请证书,一般免费证书较少,因而需要一定的费用;
2.http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议;
3.http与https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443;
4.http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

二叉树

二叉树的常用性质:

1.在二叉树的第i层上最多有2^(i-1)个节点;
2.二叉树中如果深度为k,那么最多有2^k -1个节点;
3.若二叉树按照从上到下依次编号,则若某节点编号为k,则其左右子树根节点编号分别为2k和2k+1;
4.二叉树分类:满二叉树、完全二叉树

二叉树的三种访问方式

1.先序遍历:按照根节点->左子树->右子树的顺序访问二叉树
2.中序遍历:按照左子树->根节点->右子树的顺序访问二叉树
3.后序遍历:按照左子树->右子树->根节点的顺序访问二叉树

如何判断出栈顺序是否正确?

1.若初始数列为123456789(升),则在出栈结果中,任选一个位置i,该位置右边所有小于位置i元素的,必须是降序排序。

eg:321987654

3后面小于3的元素1和2,为降序排列,9后面小于9的元素也是降序排列,合法!

eg:987651234

可快速判断出,9后面的元素1234并没有将序排列,故不合法!

2.同理可知,若初始数列为987654321(降),则在出栈结果中,任选一个位置i,该位置右边所有大于位置i元素的,必须是升序排列。

3.如果一个没有顺序的数列,如abedhgf,可参照前两条,进行标记为顺序数列,然后判断。


猜你喜欢

转载自blog.csdn.net/qq_41891803/article/details/82766069