第一次面试,我原以为运维岗不会问到太多专业知识,结果问了挺多的。
(1)TCP IP UDP 是什么
TCP:又叫传输控制协议(Transmission Control Protocal)是一种面向连接的、端对端的、可靠的、基于IP的传输层协议。主要特点是3次握手建立连接,4次挥手断开连接。
IP:又叫因特网协议(Internet Protocol),IP协议位于网络层,IP协议规定了数据传输时的基本单元(数据包)和格式,IP协议还定义了数据包的递交办法和路由选择。不安全
UDP协议是一个不可靠的、无连接协议,主要适用于不需要对报文进行排序和流量控制的场合。尽最大努力交付。面相报文。
TCP:面相连接的运输层协议。提供可靠交付。采用全双工通信。面向字节流。
(2)三次握手是什么
建立TCP/IP的过程就是要讲的三次握手。
即三次握手就是为了解决连接的问题
建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。
1.第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
2.第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
3.第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。
(1)数据库ddl是什么,dml是什么?
DDL(数据定义语言)是指CREATE,ALTER和DROP语句
DDL允许添加/修改/删除包含数据的逻辑结构,或允许用户访问/维护数据(数据库,表,键,视图…)的逻辑结构。DDL是关于“元数据”的。
DML(数据操作语言)是指INSERT,UPDATE和DELETE语句
DML允许自己添加/修改/删除数据。
DQL(数据查询语言)是指SELECT,SHOW和HELP语句(查询)
SELECT是主要的DQL指令。它会检索您需要的数据。SHOW检索有关元数据的信息。HELP…适合需要帮助的人。
DCL(数据控制语言)是指GRANT和REVOKE语句
DCL用于授予/撤消对数据库及其内容的权限。DCL很简单,但MySQL的权限相当复杂。DCL是关于安全性的。
DTL(数据事务语言)是指START TRANSACTION,SAVEPOINT,COMMIT和ROLLBACK [TO SAVEPOINT]语句
DTL用于管理事务(包含更多指令的操作,如果其中一个指令失败,则不能执行这些指令)。
(1)进程与线程含义
进程是系统进行资源调度和分配的一个独立单位。进程是具有一定功能的程序关于某个数据集合上的一次运行活动。
线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
一个进程可以有多个线程,多个线程也可以并发执行。
(2)什么是死锁,产生死锁的条件
在两个或者多个并发进程中,如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。
(3)死锁产生的四个条件(有一个条件不成立,则不会产生死锁)
互斥条件
请求与保持条件
不剥夺条件
循环等待条件
(1)数据结构一种算法的描述
1.什么是快速排序???
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
中心思想就是:找一个基准值,把数据分为两部分,然后去排序,类似于二分查找。
附上王道书快排代码:
void QuickSort(int R[], int low, int high) {
int i, j, temp;
i = low;
j = high;
temp = R[low];//轴枢
while (i < j) {
while (j > i && R[j] >= temp) {//首先从右往左找到小于轴枢的值
--j;
}
if (i < j) {
R[i] = R[j];//找到小于轴枢的值后,交换到序列前端i的位置
//从左往右扫描找到大于轴枢的值
++i;
}
while (i < j && R[i] < temp) {
++i;
}
if (i < j) {
R[j] = R[i];
--j;
}
}
R[i] = temp;
QuickSort(R, low, i - 1);
QuickSort(R, i+1, high);
}
自我介绍,项目经历,对岗位的了解,有什么意见可以提提!这些是基本!
下次一定要做足够的专业知识!!!切记!不断锻炼自己胆量!