我在面试中经常会问的两个问题

栏目: Java · 发布时间: 7年前

内容简介:面试久了之后,发现自己每次都会问下面这两个问题。问:你讲讲线程池的实现原理。听到这个问题,小部分同学会很坦白的说,我平时用过线程池,但是没有了解过内部是怎么实现的。

面试久了之后,发现自己每次都会问下面这两个问题。

线程池相关

问:你讲讲线程池的实现原理。

听到这个问题,小部分同学会很坦白的说,我平时用过线程池,但是没有了解过内部是怎么实现的。

偶尔也会有同学反怼,我会用不就行了么,为啥要知道咋实现!碰到这样的同学,我只能说,嗯,你说的对。

我希望听到的答案是,把每个参数的作用都说一遍,最好可以在纸上更加直观的描述出来,各个参数在设置的时候需要注意什么问题。

有时候,有些同学语言组织的不太好,描述的时候有点含糊不清,为了能够确定他了解的是否正确,我会直接提供一组线程池参数

问:比如现在设置coreSize=5,maxSize=10,blockQueueSize=10,依次提交6个比较耗时的任务,线程池是如何执行的?

如果这样还描述不清楚,那真的要pass了。

继续问:你在什么场景下使用过线程池,主要解决什么问题?

面试者:巴拉巴拉说一堆&%^($#@!

继续问:那如果我给你一个场景,支付场景,A接口需要调用微信支付接口完成支付任务,调用微信支付接口被放在一个线程池中执行,假如微信接口的超时时间为2s,A接口的qps大概是100,如何设置线程池参数比较合理?

继续问:如果涉及到有突发流量的场景,又该如何设置?

计数器相关

问:如果让你设计一个计数器,你怎么实现?

当然了,这道题其实并不难,有点经验的同学,都应该知道使用原子类Atomic实现,但也是碰到不少同学说直接用 i++,这真的太缺乏经验了,但我还是想引导一下这样回答的同学,

问:你知道线程对变量的操作对其它线程是不可见的吗?

答:哦,对对对,需要加个volitile修饰。

回答的还很自信。

我:哦,酱紫啊。我一下不知道咋引导了。

对于大部分能够回答出来的同学,当然会继续问

问:那Atomic原子操作是如何实现的?

问:这种实现原理,在并发量很大的情况是,性能如何?

问:你有去做过压测吗?

问:既然性能不好,那有什么可替代方案?

到这里,大部分同学会GG。

一份整理的蛮不错的 Java 核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

获取方式

我在面试中经常会问的两个问题

关注公众号,并回复 666,获取通关口令。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言接口与实现

C语言接口与实现

David R. Hanson / 郭旭 / 人民邮电出版社 / 2011-9 / 75.00元

《C语言接口与实现:创建可重用软件的技术》概念清晰、实例详尽,是一本有关设计、实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南。书中提供了大量实例,重在阐述如何用一种与语言无关的方法将接口设计实现独立出来,从而用一种基于接口的设计途径创建可重用的API。 《C语言接口与实现:创建可重用软件的技术》是所有C语言程序员不可多得的好书,也是所有希望掌握可重用软件模块技术的人员......一起来看看 《C语言接口与实现》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具