10
回答
大家java面试中会问ForkjoinPool的知识点吗
华为云4核8G,高性能云服务器,免费试用   

如题。网上看过的面试经验和题目都很少提到ForkjoinPool的,是面试官不关心么?还是有其他什么原因

<无标签>
举报
trivia
发帖于2周前 10回/1K+阅
共有10个评论 最后回答: 6天前

不会直接问,没啥意义。会一步步试探,比如,依次问下面的问题:

  • 你们使用的jdk版本是多少?
    • 通常他会说8
  • 你自己感觉8和7有什么不同吗?
    • 他通常会提到lambda表达式
  • 你知道lambda表达式是一种什么思想吗?如果让设计一个类似的方案你会怎么设计
  • lambda内部的function是异步还是同步呢?
    • 如果他答异步的话
  • 那你了解他的异步是怎么做的吗?
    • 如果他了解得多的话,他能说出来forkjoin的东西
  • 然后你就可以快乐的问他forkjoin了,可能还可以结合到数据结构来,勾引他答出双端队列,多队列,勾引他答到窃取算法里,然后再让他结合窃取算法的思路,再问问他窃取算法还可以再优化吗?在xxx场景里,这个还能再优化吗?等等等等

 

总之就是各种挖掘(勾引)

但是很不幸,我会的东西,尝试去勾引,很容易勾引出我不知道东西,但是他很牛逼,然后他很不按照套路出牌。那么两个结果,要么觉得这人真牛逼,他说的这些我全他妈不知道;要么觉得这人不行(不配合我挖的坑)

--- 共有 12 条评论 ---
黑狗 回复 @蓝水晶飞机 : 恩,后面有同学提到了,其实是为了引入到问题上,目的了解一下候选人对自己使用过的技术是否有了解,而不是“是否看过面试题” 4天前 回复
蓝水晶飞机个人觉lambda表达式和同步异步无直接关系,他只是一直语法层面的东西。 6天前 回复
黑狗 回复 @清风-蓝魔泪 : 哈哈 谢谢 不打算换工作 我打算在现在公司一直待下去了 1周前 回复
清风-蓝魔泪@黑狗 同学,游泳健身了解一下😄 1周前 回复
奔跑吧蛋蛋 回复 @清风-蓝魔泪 : 老哥你在哪个部门,我现在大三准备校招。还不确定投哪个部门呢 1周前 回复

ForkjoinPool 一般不会问。如果是想问多线程的话,一般会涉及到线程间通讯 、池化、有锁和无锁模型(再往下点,就是二种模型的有什么异同,各自在JVM和实现方式上一般是有哪一些关键的点)。

如果对方只是回答对NIO的相关工具类有一定理解和使用经验,那就一般问相关工具类的使用场景,以及注意的事项。

本质是查看知识面的深浅与广度,同时每个人都会有知识盲区,对于一些了解不细致的,通过沟通也可以看出对方在那一瞬间是否能通过已有的知识 和直觉,做一些自圆其说,以及反应快慢。

--- 共有 1 条评论 ---
trivia了解了,谢谢回复 1周前 回复

forkjoin问完了 就该问actor了

--- 共有 2 条评论 ---
乌龟壳和它的名字一样,最适合的就是 cpu 密集的并行计算。 6天前 回复
乌龟壳和 actor 无关,akka 那些都没用它,actor 不适合 work stealing 模式。 6天前 回复

可能工作中不常用,我之前面试酷家乐。我说了两三遍ForkJoin,面试官才反应过来,哦哦哦,ForkJoin啊

 

--- 共有 1 条评论 ---
trivia确实。毕竟大多数都是CURD程序猿。。 1周前 回复

引用来自“黑狗”的评论

不会直接问,没啥意义。会一步步试探,比如,依次问下面的问题:

  • 你们使用的jdk版本是多少?
    • 通常他会说8
  • 你自己感觉8和7有什么不同吗?
    • 他通常会提到lambda表达式
  • 你知道lambda表达式是一种什么思想吗?如果让设计一个类似的方案你会怎么设计
  • lambda内部的function是异步还是同步呢?
    • 如果他答异步的话
  • 那你了解他的异步是怎么做的吗?
    • 如果他了解得多的话,他能说出来forkjoin的东西
  • 然后你就可以快乐的问他forkjoin了,可能还可以结合到数据结构来,勾引他答出双端队列,多队列,勾引他答到窃取算法里,然后再让他结合窃取算法的思路,再问问他窃取算法还可以再优化吗?在xxx场景里,这个还能再优化吗?等等等等

 

总之就是各种挖掘(勾引)

但是很不幸,我会的东西,尝试去勾引,很容易勾引出我不知道东西,但是他很牛逼,然后他很不按照套路出牌。那么两个结果,要么觉得这人真牛逼,他说的这些我全他妈不知道;要么觉得这人不行(不配合我挖的坑)

java的lambda和函数式语言不一样,java的lambda是接口的一个实现,lambda体是其中的方法实现。

呃。这个哪里是异步了?肯定是同步啊。。不明白“lambda内部的function是异步还是同步呢?”的意义,指的是streamapi里面每个单元吗?

--- 共有 2 条评论 ---
黑狗一般在自己工作中会写functionInterface的可能性比较低,大多都会用来做list的foreach或者stream操作,或者是线程 所以这样引入话题的话 候选人更容易接受一些 毕竟是他用过的 问他高并发的资源竞争,很多企业根本不会碰到这个问题 所以直接问多线程,得到的答案通常很无聊 6天前 回复
黑狗所以你问他同步还是异步,他应该回答的是另外的东西 我只是举个例子,引到parallelstream等东西 直接问同步异步多线程,候选人容易答到网上的那些“标准”答案上 6天前 回复

一般不问,这有啥好问的,问你 task 还是 action ?用起来不就这2个类吗?知道和不知道的区别而已,别人没听过,不等于别人就技术差。

前些天看 “综合资讯”有个推荐文章,是说购物车的实现及策略的。基本我们这行,没人觉得自己会做不出来一个购物车吧?但是,能像那篇文章思路与需求并进的分析,讲完整的有几个?

所以,不需要问这些偏门少用的技术,就问一个购物车的实现思路及各种可能的要求点如何实现,能头头是道清清楚楚的讲完整的,我认为就是非常优秀的人才了。

综上,对于自己做过的完整功能点,能深入阐述,讲清楚自己的各种利弊取舍,各种关键点上为什么采用A方式而不采用B方式,就是优秀人才。技术点语法点之类的,都是可百度可学习的,但做事情的风格体现,那是学不了的。

顶部