1、技术面(两面分开一起,1h)
问项目、问八股文
(1)B-树、B+树和红黑树(会引出MySQL)
【解析】
引言:平衡二叉树由于树深度过大,每访问一个节点,相当于就是进行了一次I/O操作,造成磁盘IO读写过于频繁,进而导致效率低下。为了减少磁盘IO次数,需要降低树的高度,因此每个节点上存储多个元素,每个节点有多个孩子,诞生了多路查找树!确保查找效率在O(log n)以上。
【B-树】——多路平衡查找树,每个节点都会存放数据。查找思路和二叉查找树类似(二分思想),节点上有多个数据,每个节点有多个子节点,所有叶子节点在同一高度。B树的每一个节点都包含key和value,因此经常访问的元素可能离根节点更近,因此访问也更迅速
【B+树】——B树的变种,相比于B树查询效率更高,它更适合操作系统的文件索引和数据库索引。它的节点不存放数据,只用来索引,**所有数据都存放在叶子节点,并且叶子节点有指针相连**。
上海万得信息技术股份有限公司java软件开发工程师面试题
(1)B-树、B+树和红黑树(会引出MySQL)
(2)队列熟悉吗?(如阻塞队列)
【解析】阻塞队列——原理是生产者+消费者模式,有七种队列,用于线程池的任务队列。
(3)线程池优化,四大线程池的特点(高并发)
(4)两个Text文件(A,B),A文件内一亿行数据,B文件内一亿一百行数据,如何两个找出数据差异
(5)String、StringBuffer和StringBuilder
(6)Synchronized和lock区别,底层原理是?synchronized一定是重量级锁吗?
(7)SQL语言 where like %ABC 和where like ABC% 哪个先执行?
【解析】
==线程池作用==:线程复用,管理调度线程,提高效率,减少频繁创建和销毁线程的开销,控制并发
==线程池优化==:主要参数的设置(核心线程数,最大线程数,存活时间,任务队列大小(有界还是无界),拒绝策略),要权衡利弊,不同场景使用不同的配置线程池。
你是通过何种渠道获得这次面试机会的?
答:校园招聘
你觉得这次面试的难度如何?
答:难度一般
这次面试的结果如何?
答:面试未得到工作