记一次腾讯电话面试

1.自我介绍数据库

2.Java的锁有哪些?网络

回答Lock和synchronized优化

3.他俩有什么区别spa

4.B+树是什么  innodb是什么.net

(1)、定义任意非叶子结点最多只有M个儿子,且M>2; 
(2)、根结点的儿子数为[2, M]; 
(3)、除根结点之外的非叶子结点的儿子数为[M/2, M]; 
(4)、每一个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 
(5)、非叶子结点的关键字个数=指向儿子的指针个数-1; 
(6)、非叶子结点的关键字:K[1], K[2], …, K[M-1];且K[i] < K[i+1]; 
(7)、非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树; 
八、全部叶子结点位于同一层;线程

能够作数据库索引指针

5.为何用B+树作数据库索引   数据库自增主键有什么好处  为何用自增主键?blog

(1)、 B+树的磁盘读写代价更低:B+树的内部节点并无指向关键字具体信息的指针,所以其内部节点相对B树更小,若是把全部同一内部节点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多,一次性读入内存的须要查找的关键字也就越多,相对IO读写次数就下降了。
(2)、B+树的查询效率更加稳定:因为非终结点并非最终指向文件内容的结点,而只是叶子结点中关键字的索引。因此任何关键字的查找必须走一条从根结点到叶子结点的路。全部关键字查询的路径长度相同,致使每个数据的查询效率至关。
(3)、因为B+树的数据都存储在叶子结点中,分支结点均为索引,方便扫库,只须要扫一遍叶子结点便可,可是B树由于其分支结点一样存储着数据,咱们要找到具体的数据,须要进行一次中序遍历按序来扫,因此B+树更加适合在区间查询的状况,因此一般B+树用于数据库索引。排序

自增主键 
这种方式是使用数据库提供的自增数值型字段做为自增主键,它的优势是: 索引

数据库自动编号,速度快,并且是增量增加,按顺序存放,对于检索很是有利; 
数字型,占用空间小,易排序,在程序中传递也方便; 
可以保证独立性,程序能够在不一样的数据库间迁移,效果不受影响。
保证生成的ID不只是表独立的,并且是库独立的,这点在你想切分数据库的时候尤其重要。
 

6.快速排序若是有大量重复元素,如何优化?

http://www.javashuo.com/article/p-hykhwjnp-ky.html

7.Java线程池    建立线程池的参数含有   若是大于核心线程数  小于最大线程数 是什么状况 怎么处理,有没有可能一直达不到最大线程数。

能够看庆山的那个文档。

8.进程间通讯方式有哪些

我只说了三个  管道   信号   消息队列

9.网络攻击  DDOS 和 CSRF是什么  说一说

这个能够百度一下。

10,口述三次握手和四次挥手

11.你以为本身擅长什么技术   

12.你好有什么问题吗。