记一次腾讯电话面试

1.自我介绍

2.Java的锁有哪些?

回答Lock和synchronized

3.他俩有什么区别

记一次腾讯电话面试_第1张图片

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

(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])的子树; 
8、所有叶子结点位于同一层;

可以做数据库索引

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

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

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

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

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

https://blog.csdn.net/u012936940/article/details/80212601

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

可以看庆山的那个文档。

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

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

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

这个可以百度一下。

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

11.你觉得自己擅长什么技术   

12.你好有什么问题吗。     

你可能感兴趣的:(java,mysql)