每日后端面试5题 第四天

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博客

你可能感兴趣的:(面试,职场和发展,java,sql)