从面试官的角度,聊聊java面试流程

java面试100题(应届生必备) =对于基本类型来说是值比较,对于引用类型来说是比较的是引用;而equals默认情况下是引用比较,只是很多类重新了equals方法,比如String、Integer等把它变成了值比较,所以一般情况下equals比较的是值是否相等。... 阅读详情

在这篇回答里,就讲以我常规的面试流程为例,说下java方面大致会问什么问题,以及如何确认候选人达到招聘要求。

先说面试前准备,可能有些面试官是拿到简历直接问,而且是在候选人自我介绍时再草草浏览简历,但我不是这样。

1 问招人的项目经理,这个岗位需要的技术什么,比如必须Spring boot,有数据库调优经验优先考虑,要有2到3年相关经验等等。问清楚了,我就好在面试中组织自己的问题。

2 浏览候选人的简历,找出不利点和加分项。

不利点包括,候选人的学历,非计算机相关专业,候选人的经历看上去像培训班经历,或者项目看上去像自学的,或者最近半年不是做Java,或有超过3个月的未在职时间,或者频繁跳槽。

加分项包括,有获奖经历,或者像我一样出过书,或者有大厂经历,或者最近的项目技术和招聘的很匹配等等。

这里说一下,哪怕在简历中发现再多的不利点,面试也会继续,但这些不利点会写在最后的面试结论中。

3 最重要的是,整理候选人Java相关项目经验和所用的技术。

比如候选人用了spring boot,redis,kafka等技术,那么就划下来,面试时会问。

面试前我大概会用5分钟做上面所说的准备,这是必须的,是对招聘项目组负责,也是对候选人负责,在这个时间点上,候选人大概率是已经到会议室了。

下面开始面试。

1 首先是寒暄,比如要不要喝水,过来时方便吗?这样做的目的是让候选人放松。

2 然后进入到自我介绍阶段,如果候选人没有主动说出以前的项目和公司状况,我会进一步提问。 

候选人一般会说自己的年龄,工作经历,之前所在的公司和掌握的技术。此时,如果候选人说的工作情况和简历上不符,那么我会重点问,以排查虚假简历。

3 随后进入到介绍项目的阶段,这可以说是正式面试的开始。

在这个过程中,我希望候选人用2,3分钟,大致介绍之前项目的情况,用到的技术,涉及到的亮点。但不少候选人会大谈特谈项目的需求,而忽视项目用的技术和两点钟,那么我就会打断,着重提问,这个项目中用到哪些技术?如果候选人简历上写了还用到分布式组件实现高并发,我就会着重问些情况。问题的格式是,我看你简历上写了用到xx技术,结合你的项目需求,说下使用这个技术的必要性。

也就是说,通过项目介绍,我开始询问候选人相应技术(当然是招聘所需技术)在项目中的使用情况,不会过多涉及到技术细节。

如果候选人这个项目真做过,一般能说得上为什么要使用这个技术,比如项目并发量达到5000tps,所以要用nginx做分布式部署,因为支付模块是异步的,所以用kafka做消息队列等。但如果候选人项目是编的,那么大概率是只会说技术,没法说为啥要用这个技术。由此能确认技术的项目经验。

4 然后大致问下项目的开发流程和上线流程,这块如果候选人不知道怎么说,我也会引导。

比如问,你们项目是github还是其它什么方式来管理代码?用Maven还是gradle来管理项目?用(jenkins)什么来部署发布?测试工具是什么(比如junit或其他自动化测试工具)。这方面我只是询问用什么,不会展开问怎么用。这样问的目的一方面是考核候选人的项目开发能力,另一方面也是排查虚假项目。

5 随后是结合候选人在简历上写的技术提问。这块会按如下层次来问,比如我看到候选人写了用Redis做缓存,我第一层会问,为什么要用?无非是数据库压力大所以要用。第二层问,怎么用?无非是用Jedis或RedisTemplate等组件,第三层问,结合一个需求告诉我怎么用?无非是,遇到xx缓存需求,设置键是什么,值是是什么。

如果只是招个初级开发,那么问到这个程度就可以了。如果是应聘高级开发,那么我还会深入提问,比如你用到的Redis数据结构是什么?如何做持久化。如果是招资深开发或架构,那么我再问神深点,比如redis集群怎么搭,redis集群失效了怎么办?redis怎么和数据就交互,有没有遇到缓存穿透问题?

候选人只要简历上写到的值钱技术,比如kakfa,mycat等,我都会逐一询问。这里请注意我的文法,不是简单地问语法,而是结合项目问怎么用。同时,我也会经常去网上看些redis面试题,但我不会直接问,也是会让候选人结合项目说下,相关技术(比如防穿透)怎么在你项目中实现。

6 结合简历上项目以及技术提问这个阶段,我心里会有期望,比如对初级开发的期望是会Spring boot增删改查,对高级开发的期望是要有基本的分布式组件使用经验等等。所以我不在乎候选人有多少问题没回答上,但我在乎候选人的基本盘稳不稳固。

比如面初级开发的时候,我结合项目提问,发现候选人能用Spring boot+JPA(外加其他组件其他注解)做增删改查,其实候选人技术方面已经成功一半了。后面的技术问题哪怕你没说好,只要别太差,一般能过。但如果候选人在基本盘技术方面可上可下,那么就得再通过后面的问题来确认能否过面试了。

7 后面是我(面试官)自由发问,我一般会从Java核心,数据库,(Spring Boot)框架,分布式组件方面问问题。这些问题网上都有,我就不一一展开说明了。

我会把这些问题分为基础,调优和高深三类。初级开发只要求回答出基础问题。高级开发要求回答到调优程度,再高级些岗位需要知道高深类问题。毕竟不同级别的开发在工作中对应的职责不同。

比如Java核心方面,final用法,treeset和hashSet差别等,这些能直接背到答案的,属于基础。Spring boot方面,常用的jpa注解或Spring boot方面注解以及Spring boot开发流程相关问题也属于基础问题。

调优方面的问题好理解,比如你是怎么排查OOM问题的,你是怎么排查数据库性能问题,再展开下数据库索引,缓存等用法。

高深方面包括底层源码,比如ArrayList底层源码。还包括解决实际问题的经验,比如你是如何排查Redis超时问题的,是怎么排查kafka重发导致不幂等问题的。

这里多啰嗦几句。根据我面试的结果,大多数初级开发只能回答出基础类问题,这虽然能达到要求,但通过背题或准备,初级开发也能回答出更高层次的问题,如果回答出了,这就是初级开发的加分项。

但是不少高级开发甚至工作经验在7年以上的资深开发,我看他们简历上项目经验比较丰富,但依然说不好调优或比较高深的问题,这样就很吃亏。毕竟面试官是通过面试来确认候选人的能力,你平时项目做得再好,面试说不好,你的能力一定会被低估。低估的后果就是过不了面试,或者是薪资被打折。

同时,虽然我自认为我面试能力还行,但偶尔也会漏过一些会说但实际能力不达标的候选人,比如某个岗位是按4年经验给工资的,某候选人经我面试时,能表现出这种能力,但进项目组以后,被发现只具备2年开发的能力。遇到这种情况,项目经理会私下和我说,但我不会有事,毕竟我面过以后,项目经理会再面一轮,招进来能力不符的,他也有责任。

这里只展开面试官的角度记录下我见到的情况,至于怎么提升面试经验,大家可以看我相关文章,我有空也会多写此类文章。

面到这里其实我该问的问题都问好了。 我已经结合了项目确认了候选人的技术,也从java核心,数据库,框架和分布式组件等角度综合确认了候选人的能力。但我自认为我还算比较为候选人考虑,所以我后面会给候选人一个自由发挥的机会。

我会问两个问题:

1 你有哪些能帮助你应聘成功的亮点?

2 你还有哪些技术亮点刚才没有机会说明?同时再给几个方向,比如比如oom调优,数据库调优,分布式组件使用,底层源码分析等。

如果候选人能说出有具体的亮点或优势,我会记录在案。    

如果是外企面试,我会考核英语能力,无非是,用英语自我介绍,介绍最熟悉的技术和最熟悉的项目。

最后问些非技术的问题,比如期望工资,到岗时间。如果候选人在简历中有不利因素,比如频繁跳槽,我会问下原因。这时我只是记,不会发表任何意见。

当然还有例行公事的一问,我的问题问完了,你有什么问题?完事以后技术面试就结束了。

此时一般会让候选人等会,我会根据面试提问形成面试报告,面试报告一般分三部分。

1 结合岗位需求,说明候选人在java核心,数据库,框架和分布式组件等等方面的情况,是达标,勉强达标还是不达标。为了量化,一般还会给出例子,比如会写这位候选人的能力和组里xx的能力很相似。

2 列出加分项和不利点。前文也已经说过,加分项包括,能加班,年轻,有大厂经历,有海外经历,拿过奖,出过书或博客等能帮助候选人应聘成功的要点,不利点包括,最近频繁跳槽,最近半年的项目背景技术和所需的不匹配,有长时间不在职等。

需要强调的是,候选人如果在面试中表现出的一些不利因素也会记录下来,比如说话太冲,回答问题条理性不强或性格方面不适合团队协作等。

3 第三部分就是结论,结论无非是,通过,不通过,可上可下有继续面试价值,或者是,虽然本组不适合,但可以推荐给其他组面试。

毕竟人家到现场来一次也不容易,所以如果通过,或者可上可下,或者哪怕有继续面试的价值,项目经理一般都会再去面下。如果是可让其他组面试,也会有其他面试官过去沟通。 也就是说,如果你是到现场面试,在技术面试结束后,没有继续被面, 那么面试结果可能就未必好。至于后面项目经理怎么面,就和技术面试无关了,就不再继续展开了。

也写了这么多了,最后做个总结。

1 本文以我做技术面试官为例,讲述了一次面试的大概流程。其中没有展开写具体问哪些问题,因为这很容易查到,但写了结合项目综合考核候选人能力的问法。

2 从文本里大家可以看到,其实面试能力和实际技术开发能力不是一回事,技术能力一般但面试能力强,照样能过面试,反之亦然。

3 本人既然知道如何考核候选人能力,那同样也知道候选人高效准备面试的技巧,不过这和问题无关,所以就不再展开。感兴趣的朋友可以看我其他文章。或者这个回答如果点击量大,我也会再来更新一波。

最后祝广大朋友都顺利通过面试,早日实现技能和薪资双丰收。

2024年 Java 面试八股文(20w字) 基本数据类型,如int,float,double,boolean,char,byte,不具备对象的特征,不能调用方法。装箱:将基本类型转换成包装类对象拆箱:将包装类对象转换成基本类型的值java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ArrayList();list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象。 阅读详情

相关推荐

Java面试宝典(超级详细)

一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java开发环境和运行环境。 JRE:Java Runtime Environment 的简称,java 运行环境,为 java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 java 源码的编译器 javac,还包含了很多 java 程序调试和分析的工具。简单来说:如果你需要运行 java 程序,只需安装 JRE 就可

m0_67402564的博客 4348

1000+道Java面试题及答案整理(2026牛客网最新版),覆盖全部核心考点

"面试只剩3天,Java基础还一团乱?别慌!这份「Java八股文求生指南」就是为你准备的终极武器!还记得上次面试时被问到"HashMap扩容机制"时的手足无措吗?还记得被追问"线程池参数设计"时的语无伦次吗?还记得面对"JVM内存模型"问题时的大脑空白吗?八股文不再是选择题:90%的面试官会要求手写核心代码+画原理图深度大于广度:能说清synchronized锁升级过程比背10个设计模式更有价值场景化考核:单纯的"什么是volatile"已经过时,现在问"如何用volatile设计无锁队列。

sjkflw121150的博客 187

ArcGIS 10.2.2自带Python 2.7.5环境配置全攻略:从pip安装到gdal、arcpy调用

本文详细指导如何在ArcGIS 10.2.2自带的Python 2.7.5环境中进行高效配置。核心内容包括安装pip包管理器、部署gdal等关键地理数据处理库,并确保arcpy模块的无缝调用。通过解决路径配置与PyCharm集成问题,帮助用户在此经典环境中构建稳定、兼容的地理信息自动化工作流,有效连接ArcGIS桌面功能与Python脚本编程。

moon9的博客 740

Java最新面试题(全网最全、最细、附答案)

Java 语言具有多种显著特点,使其成为广泛应用的编程语言。首先,Java 是面向对象的,支持封装、继承和多态三大特性,代码以类和对象为组织单位。其次,Java 具有平台无关性,通过 Java 虚拟机(JVM)实现跨平台运行,编译后的字节码可在不同操作系统上执行。Java 是强类型语言,所有变量必须先声明类型,并在编译时进行严格类型检查。此外,Java 提供自动内存管理,通过垃圾回收(GC)机制减少内存泄漏风险,并内置多线程支持,通过 Thread 类或 Runnable 接口创建线程。

javaeEEse的博客 24万+

Java程序员不得不会的124道面试题(含答案)

double 和 long 都是64位宽,因此对这两种类型的读是分为两部分的,第一次读取第一个 32 位,然后再读剩下的 32 位,这个过程不是原子的,但 Java 中 volatile 型的 long 或 double 变量的读写是原子的。意思就是说,在你写一个 volatile 域时,能保证任何线程都能看到你写的值,同时,在写之前,也能保证任何数值的更新对所有线程是可见的,因为内存屏障会将其他所有写的值更新到缓存。如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果。

Javaesandyou的博客 3万+

面试官角度聊聊java面试流程(1),面试数据库基本知识点

1 本文以我做技术面试官为例,讲述了一次面试的大概流程。其中没有展开写具体问哪些问题,因为这很容易查到,但写了结合项目综合考核候选人能力的问法。2 从文本里大家可以看到,其实面试能力和实际技术开发能力不是一回事,技术能力一般但面试能力强,照样能过面试,反之亦然。

2401_84007049的博客 1202

面试官角度聊聊培训班对程序员的帮助,同时给培训班出身的程序员一些建议

谈到程序员(尤其是零项目经验的程序员)找工作,培训班是个不可回避的讨论热点。虽然本人也做过兼职Java培训老师,多少了解些培训班的事,但在这问题上无意为任何培训学校站台。而且本人一直在做技术面试官,所谓兼听则明。 本文将从技术面试官角度,再加上了解到的培训班一些见闻,聊聊我对如下两个方面的话题。第一,培训班的作用有多大?该不该上培训班?第二,针对低基础的程序员,尤其是零基础想转...

hsm_computer的博客 9176

十年磨一剑:站在面试官角度聊聊现下大环境面试

**帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。**无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。

m0_57473261的博客 837

【走进大厂面试系列】大厂面试官眼中的好简历到底长啥样

小小简历,大大天地,如何将简历写到面试官心坎里。

4005

面试官角度,来聊聊培训班对程序员的帮助!

在程序员需求日益增大,高校培养又供不应求的状态下,很多人都是通过培训这个渠道走上程序员的路子的。一时之间,市面上的各种培训机构火爆异常,关于自学和培训的争论也没有停止过,那么培训到底对程序员有没有帮助? 本文我将从技术面试官角度聊聊我对如下两个方面的话题。 第一,培训班的作用有多大?该不该上培训班?第二,针对低基础的程序员,尤其是零基础想转行的程序员,给出些找到第一份相关工作的建议。 1、培...

xiaoxijing的博客 547

7000字从面试官角度拆解面试20人的体会

面试官角度聊聊面试20人的体会01 初筛简历一、如果简历通过,在面试前,雁卿一般会做的 3 件事件一)了解候选人的主要经历,掌握的技能二) 提前列出面试问题三)评估英文简历二、为什么雁卿要提前准备面试问题呢?一)刚开始做面试官,缺乏经验二) 面试时长需要控制在规定时间内三、对候选人的简历有什么评价?02 面试过程一、不能按时参加面试, 提前联系HR取消二、确定考察意图三、明确面试内容, 问什么, 怎么问四、进入到面试过程,开场,提问,追问,被问等环节一)开场二) 开始提问三) 追问1. 提出行为面试问题

weixin_45503449的博客 1035

阿里P9面试官分享:应聘阿里全流程

应聘阿里是一个相对较长的流程,涉及岗位选择,简历投递,简历评估,技术面试,HR面试,背景调查,入职材料准备等环节。其中,关于技术面试,网上有很多优秀的攻略,但普遍聚焦于“纯知识点”总结,而阿里的技术面试并非单纯的知识点问答,单从技术层面做准备并不可取,此外,应聘流程中还有很多需要注意的点。 本场聊聊将从招聘者和面试官角度,详细解读应聘阿里全流程,主要内容如下: 岗位选择与简历投递; 初见之下:不...

好奇心大爆炸 3166

面试官角度聊聊培训班对程序员的帮助,同时给培训班出身的程序员一些建议...

谈到程序员(尤其是零项目经验的程序员)找工作,培训班是个不可回避的讨论热点。虽然本人也做过兼职Java培训老师,多少了解些培训班的事,但在这问题上无意为任何培训学校站台。而且本人一直在做技术面试官,所谓兼听则明。 本文将从技术面试官角度,再加上了解到的培训班一些见闻,聊聊我对如下两个方面的话题。第一,培训班的作用有多大?该不该上培训班?第二,针对低基础的程序员,尤其是零基础想转...

weixin_30295091的博客 1108

面试经验】如何最后反杀面试官

点击上方“程序IT圈”,选择“置顶公众号”每天早晨8点50分,准点开车打卡本文来源方丈的寺庙投稿前一段时候脉脉上有个段子面试官问候选人什么时候红黑树,候选人答不太熟悉,不...

467

面试官角度聊聊写简历这事

关注“Java后端技术全栈”回复“000”获取大量电子书最近公司Hr抱怨,收到了各式各样的奇葩简历,被雷的外焦里嫩。来看看下面这个:这位仁兄,你真是毫不谦虚呀!微博转发500次就是网红...

田维常 572

YOLOv11改进策略【卷积层】| DEConv: 强度信息与梯度特征融合的细节增强 适用于小目标与细节目标检测任务

本文记录的是利用 模块优化 的目标检测网络模型。(Detail-Enhanced Convolution,细节增强卷积)的设计旨在,解决 目标检测网络中传统普通卷积缺乏目标细节相关先验、对小目标边缘、目标与背景边界等关键细节捕捉能力不足的问题,同时避免引入额外参数量与计算开销,以适配 对实时推理性能与检测精度的双重需求。DEA-Net: Single image dehazing based on detail-enhanced convolution and content-guided atte

Limiiiing的博客 1405

草莓病害实例分割数据集-20251122-005555.zip

草莓病害实例分割数据集一、基础信息• 数据集名称:草莓病害实例分割数据集• 图片数量:训练集4690张,验证集456张,测试集463张,总计5609张图片。• 分类类别:Angular Leafspot(角斑病):草莓叶片上的角状斑点病害。Anthracnose Fruit Rot(炭疽病果腐病):果实上的炭疽病引起的腐烂。Blossom Blight(花枯病):花朵枯萎病害。Gray Mold(灰霉病):由灰霉菌引起的霉变。Healthy Strawberry(健康草莓):无病害的健康草莓植物。Leaf Spot(叶斑病):叶片上的斑点病害。Powdery Mildew Fruit(白粉病果实):果实上的白粉病感染。Powdery Mildew Leaf(白粉病叶片):叶片上的白粉病感染。• Angular Leafspot(角斑病):草莓叶片上的角状斑点病害。• Anthracnose Fruit Rot(炭疽病果腐病):果实上的炭疽病引起的腐烂。• Blossom Blight(花枯病):花朵枯萎病害。• Gray Mold(灰霉病):由灰霉菌引起的霉变。• Healthy Strawberry(健康草莓):无病害的健康草莓植物。• Leaf Spot(叶斑病):叶片上的斑点病害。• Powdery Mildew Fruit(白粉病果实):果实上的白粉病感染。• Powdery Mildew Leaf(白粉病叶片):叶片上的白粉病感染。• 标注格式:YOLO格式,包含实例分割的多边形坐标,适用于实例分割任务。• 数据格式:来源于农业图像数据库,图片细节清晰,适用于模型训练。二、适用场景• 智能农业病害检测系统:帮助构建能够自动识别和分割草莓植物病害区域的AI模型,辅助农民进行精准施药和病害管理。• 农业研究与创新:

上一篇: 基于 JSch 实现服务的自定义监控解决方案
下一篇: 这个队列的思路是真的好,现在它是我简历上的亮点了。
一头狒狒
博客等级 码龄4年 66粉丝 · 122原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值