Java干货分享:作为面试官对JVM面试问题的分析

在公司当技术面试官几年间,从应届生到工作十几年的应聘者都遇到过。先表达一下我自己对面试的观点:

1.笔试、面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”。通过一、二个小时内的做题、交流,只是没有其他办法下进行的无奈之举,所以通过了面试不代表有多成功,没通过也不代表有多失败。

2.好的面试官本身交谈的时候就不应当把自己一个居高临下的角色上,应当把自己和应聘者当做两个做技术的人平等的交流,把自己当作权威往往就会受到观点的角度、语言表达、工作领域的惯性的制约。

3.好的考察题目则是大家能经常接触,不同层次的人能有不同层次的答案,能从问题引申出后面继续讨论的话题。

8262b6dae1df4e51949a9d944c56c334

举个例子抛砖引玉,下面这个问题是我以前常问的,从应届生到工作十几年的人都问过:

引用

“地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete、free掉,你能不能谈谈,GC是在什么时候,对什么东西,做了什么事情?”

我自己分析一下这个问题,首先是“什么时候”,不同层次的回答从低到高排列:

1.系统空闲的时候。

分析:这种回答大约占30%,遇到的话一般我就会准备转向别的话题,譬如算法、譬如SSH看看能否发掘一些他擅长的其他方面。

2.系统自身决定,不可预测的时间/调用System.gc()的时候。

分析:这种回答大约占55%,大部分应届生都能回答到这个答案,起码不能算错误是吧,后续应当细分一下到底是语言表述导致答案太笼统,还是本身就只有这样一个模糊的认识。

3.能说出新生代、老年代结构,能提出minor gc/full gc

分析:到了这个层次,基本上能说对GC运作有概念上的了解,譬如看过《深入JVM虚拟机》之类的。这部分不足10%。

4.能说明minor gc/full gc的触发条件、OOM的触发条件,降低GC的调优的策略。

分析:列举一些我期望的回答:eden满了minor gc,升到老年代的对象大于老年代剩余空间full gc,或者小于时被HandlePromotionFailure参数强制full gc;gc与非gc时间耗时超过了GCTimeRatio的限制引发OOM,调优诸如通过NewRatio控制新生代老年代比例,通过MaxTenuringThreshold控制进入老年前生存次数等……能回答道这个阶段就会给我带来比较高的期望了,当然面试的时候正常人都不会记得每个参数的拼写,我自己写这段话的时候也是翻过手册的。回答道这部分的小于2%。

290916776ed14406a143ed39de7bf6e2

PS:加起来不到100%,是因为有确实少数直接说不知道,或者直接拒绝回答的= =#

分析第二个问题:“对什么东西”:

1.不使用的对象。

分析:相当于没有回答,问题就是在问什么对象才是“不使用的对象”。大约占30%。

2.超出作用域的对象/引用计数为空的对象。

分析:这2个回答站了60%,相当高的比例,估计学校教java的时候老师就是这样教的。第一个回答没有解决我的疑问,gc到底怎么判断哪些对象在不在作用域的?至于引用计数来判断对象是否可收集的,我可以会补充一个下面这个例子让面试者分析一下obj1、obj2是否会被GC掉?

class C{

public Object x;

}

C obj1、obj2 = new C();

obj1.x = obj2;

obj2.x = obj1;

obj1、obj2 = null;

3.从gc root开始搜索,搜索不到的对象。

分析:根对象查找、标记已经算是不错了,小于5%的人可以回答道这步,估计是引用计数的方式太“深入民心”了。基本可以得到这个问题全部分数。

PS:有面试者在这个问补充强引用、弱引用、软引用、幻影引用区别等,不是我想问的答案,但可以加分。

4.从root搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象。

分析:我期待的答案。但是的确很少面试者会回答到这一点,所以在我心中回答道第3点我就给全部分数。

23b21978e36140d9b6de18d9b477ae9f

补充一点题外话,面试时我最怕遇到的回答就是“这个问题我说不上来,但是遇到的时候我上网搜一下能做出来”。做程序开发确实不是去锻炼茴香豆的“茴”有几种写法,不死记硬背我同意,我不会纠语法、单词,但是多少你说个思路呀,要直接回答一个上网搜,我完全没办法从中获取可以评价应聘者的信息,也很难从回答中继续发掘话题展开讨论。建议大家尽量回答引向自己熟悉的,可讨论的领域,展现给面试官最擅长的一面。

欢迎刚入门的Java小白朋友们加入Java之家:79979,2590

里面提供免费的Java的学习资料(里面有企业级技术、日常练习案例等多个知识点的资料,每晚我还会
在群内直播上课)

转载于:https://my.oschina.net/u/4005571/blog/2479045

java面试问题及答辩题_面试java开发,面试官会问哪些问题? 作为一个当初从学校刚毕业找工作而被面试饱经摧残的小白,到现在的java开发从业人员,中间不可谓之不艰辛,当初的屡屡碰壁,工作受挫,一直到现在我仍然认为那是我人生中不可或缺的一段经历。关于面试的艰辛这里就不多讲了,今天主要的目的还是来给大家分享一些我以往面试时经常会遇到的面试问题,最近在找工作的小伙伴可要仔细看了,都是经验,或多或少都能帮你跳过一些小坑,也能让你在接下来的面试中会有一个警醒。话不多说... 阅读详情

相关推荐

【绝对干货】java面试笔试题及答案

一面(电话面+后期在线coding) ①你们为什么要使用mongdoDb?你们的这个系统中涉及到哪些表? ②hytrix 的实现原理是什么?隔离策略有哪些?你们使用的是哪一些?你们项目中哪些地方使用到了,使用场景是什么?为什么要使用? ③spirng 源码。 ④rocketMq 的设计理念,数据存储,设计思想等。 ⑤ConcurrentHashMap的底层实现原理 ⑥你线上问题解决经验是什么?遇到了什么问题?应该怎么去解决? ⑦在线编码: 两个有序链表,合并成一个链表,然后进行算法的时间复杂度,空间复杂度分

m0_57081140的博客 3848

一个面试官对面试问题的分析

[i]这个帖子的背景是今晚看到je上这张贴:http://www.iteye.com/topic/715256,心血来潮写下的文字,如果能抛砖引玉,能有其他面试官分析一下自己面试时问的问题,那或许是件很有意义的事情。[/i] 在公司当技术面试官几年间,从应届生到工作十几年的应聘者都遇到过。先表达一下我自己对面试的观点: 1.笔试、面试去评价一个人肯定是不够准确的,了解一...

seicefire的专栏 476

EBOM转MBOM实战:华为云数字工厂如何5步搞定BOM自动转换(含避坑指南)

本文详细解析了华为云数字工厂平台如何通过五步自动化流程实现EBOM到MBOM的高效转换,涵盖模型预配置、逻辑流编排、工艺属性注入等关键步骤,并提供了多工厂差异化配置、历史数据迁移等典型场景的避坑指南。该方案显著提升转换效率,降低差错率,助力企业实现数字化转型。

weixin_29215391的博客 269

怎么在面试时回答java垃圾回收机制相关问题?

.笔试、面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”。通过一、二个小时内的做题、交流,只是没有其他办法下进行的无奈之举,所以通过了面试不代表有多成功,没通过也不代表有多失败。 2.好的面试官本身交谈的时候就不应当把自己一个居高临下的角色上,应当把自己和应聘者当做两个做技术的人平等的交流,把自己当作权威往往就会受到观点的角度、语言表达、工作领域的惯性的

lxyso的专栏 2799

Ubuntu技巧-Ubuntu远程访问之SSH反向代理

💡大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。要把内网的一台的Ubuntu服务器让外面也能访问,总共有三种可行的方案,前面已经介绍了两种方式,今天就来介绍更健壮稳定的方式——ssh反向代理。大概的框架图如下,今天就从服务器购买到设置,手把手的教程,让你花费100块以内,就拥有一个强大的「云服务器」。

可夫小子的频道 1151

基于Python+OpenCV中文及符号检测

一、项目背景与意义在图像处理、文档识别、自动翻译等场景中,中文及符号的准确检测是一个重要且复杂的任务。传统的字符检测方法往往对英文等拉丁字母系的识别效果较好,但对中文及特殊符号的识别准确率较低。本项目旨在利用Python编程语言结合OpenCV库,开发一个能够高效、准确地检测图像中中文及符号的系统,为相关领域的研究和应用提供技术支撑。二、技术实现图像预处理:利用OpenCV的图像处理功能,对输入的图像进行灰度化、二值化、滤波去噪等预处理操作,以提高中文及符号检测的准确性[1]。

2301_79809972的博客 1119

如何做一个合格的Java面试官

先欠着

maso88的专栏 897

基于STM32与MPU6050的实时姿态检测系统设计与实现(源码+硬件解析)

本文详细介绍了基于STM32单片机与MPU6050传感器的实时姿态检测系统设计与实现。通过硬件解析、传感器校准、卡尔曼滤波算法和欧拉角计算,实现高精度姿态检测。提供完整源码和调试技巧,适用于无人机、平衡车等嵌入式开发项目,解决噪声干扰和数据漂移等常见问题。

jupi8的博客 494

java面试官如何面试别人

做程序开发确实不是去锻炼茴香豆的“茴”有几种写法,不死记硬背我同意,我不会纠语法、单词,但是多少你说个思路呀,要直接回答一个上网搜,我完全没办法从中获取可以评价应聘者的信息,也很难从回答中继续发掘话题展开讨论。2.好的面试官本身交谈的时候就不应当把自己一个居高临下的角色上,应当把自己和应聘者当做两个做技术的人平等的交流,把自己当作权威往往就会受到观点的角度、语言表达、工作领域的惯性的制约。3.好的考察题目则是大家能经常接触,不同层次的人能有不同层次的答案,能从问题引申出后面继续讨论的话题。...

m0_67392182的博客 591

手把手用瑞萨E1仿真器调试RH850 CAN通信:从报文收发到底层寄存器监控

本文详细介绍了使用瑞萨E1仿真器调试RH850 CAN通信的全过程,包括硬件连接、CS+开发环境配置、CAN控制器寄存器解析以及双通道网关实战开发。通过实战案例和错误诊断技巧,帮助开发者快速掌握RH850F1L的RS-CAN控制器应用,提升车载网络开发效率。

weixin_30919429的博客 163

RPG MV游戏数据修改指南:从JSON解析到脚本进阶

游戏数据修改是游戏开发与逆向工程中的常见实践,其核心原理在于解析和操作游戏资源文件。许多现代游戏引擎采用结构化数据格式(如JSON)存储游戏配置,这为外部修改提供了可能。通过理解文件结构、数据格式与游戏逻辑的关联,开发者或爱好者可以调整游戏平衡、修复问题或实现个性化定制,这不仅能深化对游戏设计机制的理解,也具备实际的技术学习价值。本文以基于Web技术栈的RPG Maker MV(RPG MV)引擎为例,其游戏数据多以明文JSON存储,结构清晰。文章将具体阐述如何安全地修改角色属性、物品效果、敌人数据及技能公

weixin_29001419的博客 405

用Java写一个项目,就能搞定面试官?

首先,播妞很残忍的告诉你,不太可能。在知乎平台上,有一个这样的提问「你觉得用Java写个什么项目就能和面试官谈笑风生了?」从下方的高赞回答中,便能清楚的知道,用一个项目搞定面试官是一件很难的事情。以下是回答区的一个高赞内容,来自做了多年Java技术面试官的部分回答:1. 面试官不会在乎Java开发师之前做过多少项目,因为现在公司所做的项目大概率跟面试者之前做的项目没有多少关系。面试官更看重求职者做...

传智播客的专栏 1032

基于PyQt5和OpenCV的传统图像分割应用UI程序

主要功能包括:加载和显示图像应用多种图像分割算法调整算法参数保存处理结果。

Henry的博客 473

java开发面试复试_面试java开发,面试官会问哪些问题?

作为一个当初从学校刚毕业找工作而被面试饱经摧残的小白,到现在的java开发从业人员,中间不可谓之不艰辛,当初的屡屡碰壁,工作受挫,一直到现在我仍然认为那是我人生中不可或缺的一段经历。关于面试的艰辛这里就不多讲了,今天主要的目的还是来给大家分享一些我以往面试时经常会遇到的面试问题,最近在找工作的小伙伴可要仔细看了,都是经验,或多或少都能帮你跳过一些小坑,也能让你在接下来的面试中会有一个警醒。话不多说...

weixin_29672981的博客 3856

完整复现YOLOv8:包括训练、测试、评估、预测阶段【本文源码已开源,地址在文章末尾】

(这里主要是在colab.research.google.com实现的,本地的配置也是类似的方法)YOLOv8是一种用于目标检测的深度学习算法。主要参考:https://github.com/ultralytics/ultralytics/blob/main/README.zh-CN.md。yolov8的权重:https://github.com/ultralytics/assets/releases。yolov8的文档:https://v8docs.ultralytics.com/

源代码杀手的博客 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

我的奇葩面试经历分享:喊价25K,HR 却给了30K。。。

点击上方石杉的架构笔记,右上选择“设为星标”每日早8点半,精品技术文章准时送上往期文章BAT 面试官是如何360°无死角考察候选人的(上篇)每秒上万并发下的Spring ...

石杉的架构笔记 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java基础面试必杀题:这些知识点能让你吊打面试官(实战经验分享)

发现没?原理理解深度(能不能讲清楚来龙去脉)实战经验(有没有真的踩过坑)学习能力(遇到问题怎么解决)所以别再背题了!动手写demo、看源码、做项目,这些才是通关秘籍。记住:面试是双向选择,面不过说明公司配不上优秀的你!(手动狗头)(完)准备好吃透这些知识点,下次面试记得回来还愿!

functionflow1的博客 1195

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

我的腾讯Java面试经历分享,干货满满

前言 前段时间从蚂蚁金服二面回来,有些许面试新的给大家分享。 毕业至今两年一直在A金融公司做Java开发,在一个公司时间长了我也想换个环境,于是在网上投了简历,选择公司我的目标很明确还是金融领域,最好能进大一点的公司(这一点人各有志,有的人喜欢在中小型公司),我一共投了3份简历,蚂蚁金是其中之一,也是我最期待的一家公司。 投完简历一个星期后,我接到了蚂蚁金服的面试邀请,正式开始了我的面试之旅。同时还分享下Java面试体系复习的面经及学习资源,在文末有免费领取方式! 美团技术一面20分钟 晚7点,因为想到下.

m0_57286622的博客 362

Java常见框架面试问题,面试官会怎样问关于框架的问题?这里都给你总结好了!

Java常见框架面试问题,面试官会怎样问关于框架的问题?这里都给你总结好了! 前言 经常能够看到网上看到xxx公司的面经,说明公司是有面试套路的。但不只是公司,面试官也可以有自己的面试套路,有些面试官的题可能几年都不变。 (1) 历年题或面经,相信你已经知道了。 (2)应届生与社招不一样。应届生偏基础知识,社招则可能问一些经验性的东西。 (3)跟公司有关,跟公司的业务有关,跟你要进的那个组使用的技术有关,跟它招聘的岗位有关。可以去查一下公司现在热招职位的技术要求有哪一些,有很多时候对方会写出来职位要求,

weixin_50917449的博客 5027

阿里巴巴面试官耗时500小时整理出这些Java面试经验,纯面试干货

作为一名优秀的程序员,技术面试是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察程序员的技术功底与基础理论知识。 如果你参加过一些大厂面试,肯定会遇到一些这样的问题: 1、看你项目都用的框架,熟悉 Spring、mybatis 等框架实现原理吗? 2、 看你上面有接触过消息中间件,负载均衡、RPC 框架等技术吗,MySQL 分库分表有做过吗? 3、 分布式架构设计,Redis 分布式锁呢?

jcc4261的博客 1503

JAVA程序员职场,某宝面试JAVA后端的经历分享!干货

今日分享一个某宝面试java后端的经历。 此次分享的面试过程主要分为电话面试、现场面试、HR面试。面试内容如下: 一、 电话面试: 自我介绍: 言简意赅的介绍自己的基本情况,包括姓名、籍贯、毕业院校、学历、工作年限等, 项目情况: 叙述一个你认为最熟悉或者对你影响最大的一个项目,最好是简历中比较靠前的项目介绍(简历中项目简历要按照时间顺序排序,最新的排在前面)? 叙述项目中使用过哪些技术和学习了哪些新技能? 叙述项目中哪一部分最难攻克?遇到困难又是如何攻克?

qq_43080036的博客 2097

java面试基本知识,2024Java面试真题精选干货整理,

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。最新整理面试题上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题最新整理电子书最新整理大厂面试文档以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。49)]针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。最新整理面试题。

Y1567409的博客 830

Java最全【Java面试题总结 11】数据库与JVM综合篇(附答案),springboot面试

1、看视频进行系统学习这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。2、读源码,看实战笔记,学习大神思路“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。

2301_79099287的博客 928

面试干货分享(经验总结+本人遇到的实际面试问题)

面试经验分享(个人真实经历) 本文是个人面试的真实经验,在这里与大家分享,希望可以帮到最近正在求职的小伙伴们,如有逻辑或者答案不对的地方,欢迎大佬们指正,我们一起进步哈! Java基础面试题肯定是要掌握的(不然初试就凉凉) 所谓的初试,大部分是那些hr沟通后进行的电话面试,或者是在第一次电话联系中和你说明他们公司需求后的情况下随机问的一些问题,目的是测试你是否有任职这个岗位的基础能力(说白了我感觉是在试水),下面分享一下我初试问到的问题: 一. 电话面试真实被问过的问题(平均面试时间大约在20分钟左右):

weixin_38359768的博客 1055

如果你是一个 Java 面试官,你会问哪些问题?

最近换工作,对最近面试的过程进行总结,总结每个公司的面试流程和问到的面试题,记录自己,也供大家参考。我是一名 Java 开发,工作经验 10 年,所以面试一名高级 Java 开发工程师。简历投递平台,只使用了 Boss 直聘。由于生鲜电商裁员,我也是受害者的一员,就职的公司是*菜。2021 年 9 月 8 号开始开始投简历,2021 年 9 月 18 号关闭 Boss 简历,去掉周末面试 8 天。

张小方的博客 211
上一篇: 程序员面试被问:年底要年终奖吗?网友:公司没有就年后入职!
下一篇: 程序员初入职场,因简历太简单被拒,竟让HR帮改!网友:稳中带皮
chenqian4525
博客等级 码龄11年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值