武汉高途后端开发面经 1.5h
主要写了我没有回答好的内容,其他都是普通八股+项目
1.callable和runnable的区别
我就回答了,callable可以携带返回值,runnable不能携带值。其他就不是很了解
2.如果有这个场景,平时线程池只需要调用两个核心线程就能实现所有任务,但是在高并发的时候,显然需要更多的核心线程,比如,我们可以可以不急着把任务放到等待队列,反而是增加核心线程数去执行,再放到任务队列中,你会怎么解决?
我就回答了,可以创建两个线程池,分别应对冷热场景,然后手动进行调整,冷的时候用核心线程少的,热的时候用核心线程大的
3.HashSet的去重,源码是如何解决的?
不太了解,当时就说了,可以通过比较是否是相同的,如果key相同的话就不能存储。
4.thread 的start和run的区别?
这个一点都不知
5. 先问了threadLocal,然后问了线程threadLocal的可见范围,以及如何让其他线程去看到这个线程的threadLocal值
我就回答了使用volatile修饰,然后进行数据共享
手写算法,写的是excel数字转字符,比如1=A,2=B,26=Z,27=AA
当时想的就是转26进制,忘记考虑边界条件了,比如26%26 = 0,0+'A'-1 = 'z'(小写),其他没啥问题