1. 线程池的核心参数(高薪常问)
(1)corePoolSize:核心线程个数
(2)maximumPoolSize:最大线程个数
(3)keepAliveTime:最大存活时间
(4)unit:存活时间的时间单位
(5)workQueue:阻塞队列,用于存储阻塞的队列
(6)threadFactory:创建线程的工程类
(7)handler:线程最终拒绝处理策略
2. 线程池的原理(高薪常问)
1.查看有无闲置核心线程
有则交给闲置核心线程去处理;
2.如果没有闲置核心线程
就查看核心线程数是否已满
未满则创建核心线程去处理;
3.如果核心线程数已满
就查看阻塞队列是否已满
未满则加入阻塞队列等待处理;
4.如果阻塞队列已满
就查看有无闲置的临时线程
有则交给闲置的临时线程处理;
5.如果没有闲置的临时线程
就查看最大线程数有没有达到
没达到则创建临时线程去处理;
6.如果已经达到最大线程数
则交给拒绝策略去处理。
3. 聚合函数(必会)
聚合函数是SQL提供来统计、求和、求最值的函数。
比如:
COUNT:统计数量(统计行数量)
SUM:求和(求某个列的合计值)
AVG:求均值(求某个列的平均值)
MAX:求最大值(列的最大值)
MIN:求最小值(列的最小值)
4. String、StringBuffer、StringBuilder 三者之间的区别(必会)
String不能省内存的拼接字符串,SBu和SBf可以。
SBu线程不安全,SBf线程安全。
1.操作少量字符串用String
2.操作大量字符串,单线程情况,用StringBuilder
3.操作大量字符串,多线程情况,用StringBuffer
5. 如何启动一个新线程、调用 start 和 run 方法的区别?(必会)
参见我上一天的补充:
每日后端面试5题 第三天_zrc007007的博客-CSDN博客