记录一次糟糕的java后端面试
java吧
全部回复
仅看楼主
level 7
打猫的老鼠木木
楼主
面试官问了这几个问题
面试官:java线程池的数据结构是什么?
我一堆大问号,这玩意还有数据结构,勉强答了ctl这个字段相关的
面试官不太满意
面试官:如果任务数量小于核心线程数,那么会用到阻塞队列吗?
我说不会,优先使用核心线程处理。看他的反应应该是认为不对。
面试官:提交任务的线程和线程池的线程是什么关系?
我继续大问号
面试官:cas是如何加锁的?
我说cas不需要加锁
面试官巴拉巴拉,我就开始反问面试官了,然后不断打断他,因为他前面不断打断我的回答
2026年07月31日 10点07分
1
level 7
打猫的老鼠木木
楼主
我自己猜测一下是怎么回事?
最后面试官说了一句,你多了解一下其它语言就明白了。我猜测面试官应该是会些其它语言,然后混淆了java和其它语言的线程池的概念。我们假设java的线程池底层的模型是生产者消费者模型,那么所有的信息其实是可以和面试官的问题对的上的。后面附上ai的结论。
cas是如何加锁的,这个其实应该是我理解有问题,同时问法也有很大的歧义。实际可能是如何使用cas实现一个锁之类的。
2026年07月31日 10点07分
2
level 7
打猫的老鼠木木
楼主
ai关于线程池的说法如图片所示:
2026年07月31日 11点07分
3
level 7
打猫的老鼠木木
楼主
后面我开始反问面试官,估计他也懵逼了,跟我说你读过java23的源码吗?我说没有。面试结束后我特意问了ai,java23中线程池的逻辑和java8处理任务的逻辑是一致的。
2026年07月31日 11点07分
4
level 7
打猫的老鼠木木
楼主
还问了为什么不使用springmvc实现网关,简直离谱了,估计是写go的?还说spring cloud gateway是个半成品
2026年07月31日 11点07分
5
level 1
在临涣古城格斗的海燕
可以不让进进来,这是医院的权利,不让你出去,是非法拘禁。正确的方式是只能出不能进。
2026年08月01日 09点08分
6
level 7
疾风嘉豪
绷
2026年08月01日 10点08分
7
level 1
百度你就是歌
面试官可能已经被ai的错误幻觉污染了
2026年08月01日 11点08分
8
level 7
fmvp不可能有问题
cas是锁缓存的,是硬件锁,这搞代码的哪知道,可以问锁如何依赖cas,但是不能问cas如何上锁啊。网关和springMVC这块,干过java的都知道,springMVC本质就是干servlet的活的,做的就是将url和具体的方法进行绑定,网关是把url和具体的服务绑定,不暴露具体的方法。以上的两个确实问的很低级,就跟那种从来没学过的一样。至于线程池,这玩意一般是有数据结构的,有链表和数组,这个问的太简单了。
2026年08月01日 14点08分
9
打猫的老鼠木木
链表和数组更倾向于阻塞队列的数据结构,但是线程池的阻塞队列可以随便切换的。如果硬要说是线程池用hashset维护了线程列表,好像也不合适。我觉得这个问题不太常规,不知道往那个方向回答。感觉可以解释的空间太大了。我第一印象是ctl这个字段。
2026年08月02日 04点08分
level 5
山间月明🌙
大哥是几年啊,怎么问那么深,高级开发吗
2026年08月01日 16点08分
10
贴吧用户_Q6VtZNt
@打猫的老鼠木木
因为有人会说这些问题都不知道?
2026年08月02日 04点08分
贴吧用户_Q6VtZNt
要是放在前几年你发这句话会被喷的
2026年08月02日 03点08分
山间月明🌙
@贴吧用户_Q6VtZNt
我是一年,但是真不知道这些
2026年08月02日 05点08分
不破爱花⚡
@山间月明🌙
没事我干了10年一样不知道,没当上管理层不知道这个很正常
2026年08月03日 00点08分
level 9
Spect2018
人家是面试官,你可以说人家问的题不好,但是你想要入职的话,就需要把面试官的问题答上来
2026年08月01日 16点08分
11
一只小🐭🐭º
@Spect2018
求职是双向选择,不是来当孙子的
2026年08月03日 04点08分
一只小🐭🐭º
@Spect2018
但是面试官的问题是错的呀,楼主都说了,你问错的题目这答上来有啥用
2026年08月03日 04点08分
打猫的老鼠木木
但是如果问题本身就是错误的呢?这种面试官问完问题就不想进了,进去干什么,去被他折磨吗?但是恶心我必须怼回去。
2026年08月02日 03点08分
打猫的老鼠木木
而且面试官也要尊重面试者,中间不断打断回答怎么将?
2026年08月02日 04点08分
level 4
✨Lemon丶
这啥水平的面试官,问的都是啥
2026年08月01日 17点08分
12
level 7
waka4983
官嘛,得装的高深点
,java6就个数组照样干,内存不限好狗屁不是。
2026年08月01日 18点08分
13
level 7
waka4983
CAS本身就是锁啊加谁去啊
2026年08月01日 18点08分
17
打猫的老鼠木木
关键这面试官后来还把cas和操作系统的那个锁混合了,因为他老是打断我说话,然后我一通问,后来他被问的受不了了,说谁是面试官,然后问我读过java23的源码吗?
2026年08月02日 04点08分
waka4983
@打猫的老鼠木木
懂点PV操作的就知道这套个循环就能用,纯属看八股看出成就感了。
2026年08月02日 06点08分
level 1
小手冰凉2009
cas确实要加锁呀,只不过加锁这个动作是由硬件支持的。compare and swap,我在学习这个的时候就好奇,先比较值是否符合预期,如果符合就交换,这明明是两个步骤,是怎么实现原子的,也是问ai嘚知这个是硬件(cpu)加锁保证的。(虽然不知道你的面试官是不是想问这个)
2026年08月01日 20点08分
18
雷克斯班纳🐭
在哪学的 怎么学这么深
2026年08月02日 00点08分
打猫的老鼠木木
这个是原子指令了吧,我理解是cpu保证的,但是要说cpu加锁是不准确的,因为很多指令在cpu层面就是可以拆分为多步的,比如从内存读取数据到缓存,这里面经历了n多操作,你总不能理解为cpu取数据也加锁吧?只能理解为cpu保证了逻辑上这个指令是原子的,但是cpu内部是做了很多操作的
2026年08月02日 04点08分
打猫的老鼠木木
@雷克斯班纳🐭
这个应该是比较常见的东西了,培训班的课程讲到多线程哪里必定讲cas的
2026年08月02日 04点08分
小手冰凉2009
@打猫的老鼠木木
你搜 LOCK CMPXCHG,这个就是 cpu 提供的指令集,用来实现 cas。说它是锁也没什么问题。 其实这个重点不在这里,我不知道你的面试官是不是想问这个点,但假设我是面试官,我如果问这个问题,就是希望候选者能说出来,cas的实现原理,以及'比较'和'交换'其实是两个步骤,需要cpu来保证原子性。 而且这个也是一个面试技巧吧,有时候你不太清楚面试官到底想问什么,但是你可以尽量说出来相关的东西,让面试官知道你懂哪些知识,然后再和面试官对齐 gap 的点
2026年08月02日 07点08分
1
2
尾页