1.自我介绍
2.Java的锁有哪些?
回答Lock和synchronized
3.他俩有什么区别
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.youkuaiyun.com/u012936940/article/details/80212601
7.Java线程池 创建线程池的参数含有 如果大于核心线程数 小于最大线程数 是什么情况 怎么处理,有没有可能一直达不到最大线程数。
可以看庆山的那个文档。
8.进程间通信方式有哪些
我只说了三个 管道 信号 消息队列
9.网络攻击 DDOS 和 CSRF是什么 说一说
这个可以百度一下。
10,口述三次握手和四次挥手
11.你觉得自己擅长什么技术
12.你好有什么问题吗。