其他分享
首页 > 其他分享> > 面试题目突击

面试题目突击

作者:互联网

1、红黑树、b+树、跳表、倒排索引

红黑树:平衡二叉树,通过对任何一条从根到叶子的简单路径上各个节点的颜色进行约束,确保没有一条路径会比其他路径长2倍,因而是近似平衡的。所以相对于严格要求平衡的AVL树来说,它的旋转保持平衡次数较少。用于搜索时,插入删除次数多的情况下我们就用红黑树来取代AVL。
(现在部分场景使用跳表来替换红黑树,可搜索“为啥 redis 使用跳表(skiplist)而不是使用 red-black?”)

B树,B+树:它们特点是一样的,是多路查找树,一般用于数据库系统中,为什么,因为它们分支多层数少呗,都知道磁盘IO是非常耗时的,而像大量数据存储在磁盘中所以我们要有效的减少磁盘IO次数避免磁盘频繁的查找
B+树是B树的变种树,有n棵子树的节点中含有n个关键字,每个关键字不保存数据,只用来索引,数据都保存在叶子节点。是为文件系统而生的。

 

跳表是一种随机化的数据结构,目前开源软件 Redis 和 LevelDB 都有用到它,

它的效率和红黑树以及 AVL 树不相上下,链表是有序的,但不能使用二分查找。类似二叉搜索树,我们把一些节点提取出来,作为索引

再从一级索引提取一些元素出来,作为二级索引

 

 

 Lucene使用倒排索引

以word作为关键索引。表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况

 

2、集合

vector支持增量因子

hashmap线程不安全,效率高,允许键为空

 

3、CAS

 

 

4、http

服务器将非对称加密的公钥传递给客户端

客户端用传过来的公钥对client key加密,服务器用私钥解密。使用client key对数据进行对称加密,客户端使用非对称解密

 

5、进程和线程

进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位)
线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)

 

6、三次握手与四次挥手

 

标签:题目,索引,面试,跳表,线程,进程,磁盘,突击,节点
来源: https://www.cnblogs.com/liujinhui/p/15102755.html