Others(理论知识)

面向过程编程和面向对象编程

面向过程编程是分析出解决问题的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。
- 程序流程十分清楚(自顶向下,逐步求精)
- 数据和对数据的操作是分离的。

面向对象编程是将事物对象化,通过对象通信来解决问题。更贴近日常生活的思想(把事物对象化,包括其属性和行为)
- 数据和对数据的操作是绑定在一起的。
- 三大基本特征:封装(隐藏实现细节,使得代码模块化)、继承(代码重用)、多态(接口重用)
- 能降低软件开发和维护的成本,提高软件质量

面向过程是面向对象的基础,面向对象是面向过程的抽象。
从代码层面来看,面向对象和面向过程的主要区别就是数据和单独存储还是与操作存储在一起。

解释一下LRU算法

LRU是Least Recently Used的缩写,最近最少使用,是一种页面置换算法,是为虚拟也是存储管理服务的。

网站速度慢,从哪些方面排查?

①(客户自身)网速,可以试试打开其他的网站,看看速度是否一样缓慢;
②(网站自身–代码问题)
1、引用资源过多(图片、flash、其他媒体文件),导致http请求次数过多;也有图片没优化的问题
2、网站使用的是传统table布局(会增加系统开销),而不是div+css;如果使用的不是外部引用文件的css/js那就会更慢;
3、使用了ASP来建设网站(没有垃圾回收机制)
③(网站自身–网络问题)
1、出口带宽不够用,并发量大,均分给用户的出口带宽就更小了。
2、跨运营商网络导致带宽缩减
3、服务器负载过大

运维工程师应具备哪些能力和素质

运维是线上产品的首要负责人。
(细心)要有敏感的风险意识,稳定和安全是运维的最高责任。
(态度)每次故障都是很好的学习机会
(能力)学习能力和技术能力、

动态路由协议有哪些?

1、RIP协议(内部网关协议):
是内部网关协议IGP中最先得到广泛使用的协议,是一种分布式的基于距离向量的路由选择协议。
特点:
①仅和相邻路由器交换信息;
②路由器交换的信息是自己的路由表;
③按固定的时间间隔交换路由信息

2、OSPF协议(内部网关协议)。
开放最短路径优先,主要特征是使用分布式的路由状态协议;
特点是:更新过程收敛得快
优点:技术成熟
缺点:安全性不高

3、ISIS协议
优点:安全性高
缺点:异常处理能力较差

4、BGP协议(外部网关协议)
特点:BGP采用了路径向量路由选择协议。只能是力求寻找一条能够达到目的网络且比较好的路由,而并非寻找一条最佳路由。
缺点:对资源占用较大

.bash_profile文件的作用

这个文件本质上来说,就是个脚本,存放于/home/xxx/中(当然,root账户有自己单独的bashrc文件),xxx代表用户名,就是为这个用户设置bash的环境用的,通过修改这个配置文件,你可以自定义一些替换命令或者其他的个性化设置,这些设置只对这个文件所属用户生效,比如我在windows中清屏一直用cls,在bash中clean命令用不惯,那我就在这个配置文件中加一句:
alias cls = ”clear“
这样,我就不用每回启动都设置一下alias,因为把这条命令写到配置文件中,就会永久生效,且不会影响到其他用户

在linux系统中,如何知道另外一台服务器的端口是否打开

①配置yum本地安装源
②用yum下载nmap
即yum install nmap
③nmap -p 1-200 目标的主机IP
即nmap -p 80 172.24.40.5

TCP和UDP的区别

两种都是传输层协议,为应用层提供信息载体。
TCP是基于连接的可靠协议;TCP传输数据前需先进行三次握手;
UDP是基于无连接的不可靠协议;UDP传送数据前并不与对方建立连接;效率比TCP要高

TCP一般用于:
1、文件传输(FTP、HTTP对数据准确性要求高,速度可以相对缓慢)
2、邮件传输(POP IMAP SMTP对数据准确性要求高)
3、远程登录(TELNET SSH 对数据准确性高,有连接)

UDP一般用于:
1、即时通信(QQ聊天,对数据准确性和丢包要求比较低,但速度必须快)
2、在线视频
3、网络语音电话

TCP里TIME_WAIT和CLOSE_WAIT的区别

Time_wait是主动关闭链接时形成的,约4分钟。目的是为了防止最后一个ACK丢失。
Close_wait是被动关闭链接时形成的。根据TCP状态机,服务器端收到客户端发送的FIN,则按照TCP实现发送ACK,因此进入close_wait状态

五层协议的体系结构

5应用层 [FTP、HTTP、DNS]
4运输层[TCP、UDP]
3网络层(路由器)[IP、ARP、ICMP]
2数据链路层(网桥、桥接器)[PPTP、L2TP]
1物理层(转发器、集线器)

进程间传播和交换信息。

1)共享内存,内存由一进程创建,其他进程共享。
2)信号量,计数器,控制资源访问。
3)管道,在具有亲缘关系的进程中使用,通常指父子进程关系。

哈希函数的构造方法

1、直接定址法;
2、数字分析法;
3、平方取中法;
4、折叠法;
5、除留余数法;
6、随机数法;

处理冲突的方法

1、开放定址法;
2、再哈希法;
3、链地址法;
4、建立公共溢出区

HTTP状态码

100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,
表示确认,之后发送具体参数信息
200 OK 正常返回信息
201 Created 请求成功并且服务器已创建新的资源
202 Accepted 服务器已接受请求,但尚未处理
301 Moved Permanently 请求的网页已永久移动到新位置
302 Found 临时性重定向
303 See Other 临时性重定向,且总是使用GET请求新的URI
304 Not Modified 自从上次请求后,请求的网页未修改过
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求
401 Unauthorized 请求未授权
403 Forbidden 禁止访问
404 Not Found 找不到如何与URI相匹配的资源
500 Internal Server Error 最常见的服务器端错误
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)

常见的设计模式

单例模式(singleton)

有些时候,允许自由创建某个类的实例没有意义,还可能造成系统性能下降。如果一个类始终只能创建一个实例,则这个类被称为单例类,这种模式就被称为单例模式。

代理模式(Proxy)

代理模式是一种应用非常广泛的设计模式,当客户端代码需要调用某个对象时,客户端实际上不关心是否准确得到该对象,它只要一个能提供该功能的对象即可,此时我们就可返回该对象的代理(Proxy)。

工厂模式

关于DNS的一些说法

① DNS的作用是域名IP地址的相互映射;
② DNS协议运行在UDP协议之上;
③ DNS协议端口号为53;
④ DNS的默认缓存时间:
【本地】默认1天;
【浏览器】
Safari:10s;
FF/Chrome:60s;
IE:30分钟

以下算法复杂度是多少?

int foo(int N)
         {
                   int result =0;
                   for(int i = 1; i <= N; ++i)
                            for(int j = 1; j<= N; j += i)//注意这里是j += i 
                                     result += (i+j);
                   return result;
         }
//第一次是N,第二次是N/2,第三次是N/3...第N次是1;
//故所有次数为(N + N/2 + N/3 +...+1),即N(1 + 1/2 + 1/3 +...+1/N);
//根据欧拉公式,得N * ln N,即nlogn

当ping www.jd.com时,使用了哪些协议?

①DNS:将 域名 -> IP;
②ARP:将 IP -> MAC地址(即硬件地址);
③ICMP:ping测试另一台主机是否可达,程序发送一份ICMP回显请求给目标主机

因为不涉及数据传输,没有用到TCP

前、中、后缀表达式

中缀 –> 前缀、后缀

a+b*c-(d+e)
①按运算顺序加括号,得:((a+(b*c))-(d+e))
②要前缀表达式,则把运算符提到当前括号左,得:-(+(a*(bc))+(de)),
去括号得:-+a*bc+de
③要后缀表达式,则把运算符提到当前括号右,得:((a(bc)*)+(de)+)-,
去括号得:abc*+de+-

后缀 –> 中缀

5 3 2+ * 8 2/ -
①遇到数字入栈,遇到运算符,从栈顶取出2个数运算,(最顶的作为除数)
栈里:5、3、2,遇到+,则5、(3+2);
遇到,则5(3+2);
遇到8、2,则5*(3+2)、8、2;
遇到/,则5*(3+2)、(8/2);
遇到-,则5*(3+2)-(8/2);
即21

带宽

集线器:平分带宽
交换机 和 路由器:不平分带宽

windows系统口令配置文件是

c:\windows\system32\config\SAM

不同系列的机器之间,实现软件移植的途径

①用统一的高级语言
②模拟
③仿真

修改列名

MySQL:alter table 表名 change 列名 新列名
Oracle:alter table 表名 rename column 列名 to 新列名

软件质量特性

分为6种:
功能性(也叫正确性):指软件所实现功能满足用户需求的程度;
可靠性:在规定条件下,软件所能维持其性能水平的程度;
易用性:指软件对用户的友好程度;
效率:在规定条件下,软件实现某种功能所需的计算机资源有效程度;
可维护性:进行维护的容易程度;
可移植性:从一个计算机系统迁移到另一个计算机系统的容易程度;

有序表的二分查找

已知如下11个数据元素的有序表
(05,13,19,21,37,56,64,75,80,88,92)
现要查找关键字为21的数据元素。

解:
指针 low 和 high 分别指向第一个、最后一个;
指针mid指向⌊(low+high)/2⌋;
这里写图片描述

线性结构 与 非线性结构

线性结构:线性表、栈、队列、串、数组(一维)
非线性结构:数组(二维及以上)、广义表、树、图、堆

猜你喜欢

转载自blog.csdn.net/ak47bo88/article/details/77816921