部门好像主要C和go,所以java一点没有
数据结构
1.快排过程,平均时间复杂度(Onlogn),最差O(n^2)
2.什么是最小堆
根最小,是一个完全二叉树,非叶节点左右子节点比他本身大
计网
1.TCP三次握手,建立连接后socket状态
服务器根据地址类型(ipv4,ipv6)、socket类型、协议创建socket
服务器为socket绑定ip地址和端口号
服务器socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的socket并没有被打开
客户端创建socket
客户端打开socket,根据服务器ip地址和端口号试图连接服务器socket
服务器socket接收到客户端socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候socket进入阻塞状态,所谓阻塞即accept()方法一直到客户端返回连接信息后才返回,开始接收下一个客户端谅解请求
客户端连接成功,向服务器发送连接状态信息
服务器accept方法返回,连接成功
客户端向socket写入信息
服务器读取信息
客户端关闭
服务器端关闭
2.TCP四次挥手,time_wait是谁的 time_wait是
主动调用closed的一方才会在接收到对端的ACK后进入time_wait状态
保证可靠(可靠性是TCP最根本的特征)地终止TCP连接:处于TIME_WAIT状态的客户端会向服务端发送ACK,如果此时ACK丢失,目的端会超时重传FIN报文段,目的端收到重传的报文段最少需要2MSL,所以发送端会等待2MSL时间;
客户端在发送ACK后,再等待2MSL时间,可以使本次连接所产生的数据段从网络中消失,从而保证关闭连接后不会有还在网络中滞留的数据段去骚扰服务端。
数据库
1.mysql和sqlserver区别
根本的区别:
SQL服务器的引擎是Sybase,而MySQL能够提供更多种的选择,如MyISAM、Heap、InnoDB、Berkeley DB;
MySQL不完全支持陌生的关键词,所以它比SQL服务器要少一些相关的数据库;
MySQL也缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能
Mysql跨平台,SQL servers windows
MySQL包含一个缺省桌面格式MyISAM。MyISAM 数据库与磁盘非常地兼容而不占用过多的CPU和内存。
MySQL可以运行于Windows系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。SQL服务器的稳定性要比它的竞争对手强很多,但是也必须增加额外复杂操作,磁盘存储,内存损耗等等。
四、安全功能
MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。 在SQL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价。 这两个产品都有自己完整的安全机制。只要你遵循这些安全机制,一般程序都不会出现什么问题。这两者都使用缺省的IP端口,但是有时候很不幸,这些IP也会被一些黑客闯入。当然,你也可以自己设置这些IP端口。
五、恢复性:先进的SQL服务器
恢复性也是MySQL的一个特点,这主要表现在MyISAM配置中。这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失。然而,对于SQL服务器而言就表现得很稳键。SQL服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来。
2.mysql事务隔离四个等级
读取未提交,读取已提交,可重复度,可串行化
3.mysql事务四个特征
原子性,隔离性,一致性,持久性
操作系统:
32位和64位什么区别,int在32和64分别占多少字节
1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存
2、64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍
32位编译器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
进程的地址空间
不会的都没记住...给面试官整乐了,我也太菜了