华盛通 Java开发工程师 一面(社招)
一面(35分钟)2023.08.30
1、平常是怎么使用线程池的
2、线程池参数
3、核心线程数、最大线程数、阻塞队列的关系
4、有几种拒绝策略
5、核心线程怎么复用的(怎么保证核心线程不会被销毁)
6、线程池执行一个worker是怎么进行调度的(简单说一下)
7、获取线程的返回值,怎么做
8、future的get是阻塞的还是非阻塞的(阻塞)
9、ThreadFactory除了创建线程还有什么功能
10、可以通过ThreadFactory统一的设置异常捕获吗
11、项目中有使用过CountDownLatch吗
12、CountDownLatch是用来干嘛的
13、CountDownLatch怎么让一个线程等待所有其他线程执行完才执行,底层怎么实现的
14、CountDownLatch用的共享锁还是互斥锁
15、synchronized和ReentrantLock性能有孰优孰劣
16、synchronized有做什么性能优化吗
17、synchronized是可重入锁吗?synchronized公平还是非公平的
18、ReentrantLock怎么实现公平锁的
19、 JDK1.8的HashMap的hash函数做了什么优化
20、为什么HashMap有个负载因子的设计
21、HashMap解决了多线程操作导致死循环问题吗
22、HashMap需要插入1000条数据,你怎么设置HashMap让性能比较高
23、Redis为什么会产生big key问题
24、Redis渐进式hash有了解吗
25、Redis做分布式锁有什么要注意的
26、MySQL的sql语句一般会怎么优化
27、explain会关注哪些字段
28、联合索引为啥会有最左前缀的原则
29、SpringBoot的run方法具体执行哪些步骤
30、MyBatis的一二级缓存