java面试官如何面试别人

2023-10-26

java面试官如何面试别人(一)
  java面试官的“面试心得”
  在公司当技术面试官几年间,从应届生到工作十几年的应聘者都遇到过。先表达一下我自己对面试的观点:
  1.笔试、面试去评价一个人肯定是不够准确的,了解一个人最准确的方式就是“路遥知马力,日久见人心”。通过一、二个小时内的做题、交流,只是没有其他办法下进行的无奈之举,所以通过了面试不代表有多成功,没通过也不代表有多失败。
  2.好的面试官本身交谈的时候就不应当把自己一个居高临下的角色上,应当把自己和应聘者当做两个做技术的人平等的交流,把自己当作权威往往就会受到观点的角度、语言表达、工作领域的惯性的制约。
  3.好的考察题目则是大家能经常接触,不同层次的人能有不同层次的答案,能从问题引申出后面继续讨论的话题。
  举个例子抛砖引玉,下面这个问题是我以前常问的,从应届生到工作十几年的人都问过:
  引用
  “地球人都知道,Java有个东西叫垃圾收集器,它让创建的对象不需要像c/cpp那样delete、free掉,你能不能谈谈,GC是在什么时候,对什么东西,做了什么事情”
  我自己分析一下这个问题,首先是“什么时候”,不同层次的回答从低到高排列:
  1.系统空闲的时候。
  分析:这种回答大约占30%,遇到的话一般我就会准备转向别的话题,譬如算法、譬如SSH看看能否发掘一些他擅长的其他方面。
  2.系统自身决定,不可预测的时间/调用System.gc()的时候。
  分析:这种回答大约占55%,大部分应届生都能回答到这个答案,起码不能算错误是吧,后续应当细分一下到底是语言表述导致答案太笼统,还是本身就只有这样一个模糊的认识。
  3.能说出新生代、老年代结构,能提出minor gc/full gc
  分析:到了这个层次,基本上能说对GC运作有概念上的了解,譬如看过《深入JVM虚拟机》之类的。这部分不足10%。
  4.能说明minorgc/full gc的触发条件、OOM的触发条件,降低GC的调优的策略。
  分析:列举一些我期望的回答:eden满了minor gc,升到老年代的对象大于老年代剩余空间full gc,或者小于时被HandlePromotionFailure参数强制full gc;gc与非gc时间耗时超过了GCTimeRatio的限制引发OOM,调优诸如通过NewRatio控制新生代老年代比例,通过 MaxTenuringThreshold控制进入老年前生存次数等……能回答道这个阶段就会给我带来比较高的期望了,当然面试的时候正常人都不会记得每 个参数的拼写,我自己写这段话的时候也是翻过手册的。回答道这部分的小于2%。
  PS:加起来不到100%,是因为有确实少数直接说不知道,或者直接拒绝回答的= =#
  分析第二个问题:“对什么东西”:
  1.不使用的对象。
  分析:相当于没有回答,问题就是在问什么对象才是“不使用的对象”。大约占30%。
  2.超出作用域的对象/引用计数为空的对象。
  分析:这2个回答站了60%,相当高的比例,估计学校教java的时候老师就是这样教的。第一个回答没有解决我的疑问,gc到底怎么判断哪些对象在不在作 用域的至于引用计数来判断对象是否可收集的,我可以会补充一个下面这个例子让面试者分析一下obj1、obj2是否会被GC掉
  class C{
  publicObject x;
  }
  C obj1、obj2= new C();
  obj1.x = obj2;
  obj2.x = obj1;
  obj1、obj2= null;
  3.从gcroot开始搜索,搜索不到的对象。
  分析:根对象查找、标记已经算是不错了,小于5%的人可以回答道这步,估计是引用计数的方式太“深入民心”了。基本可以得到这个问题全部分数。
  PS:有面试者在这个问补充强引用、弱引用、软引用、幻影引用区别等,不是我想问的答案,但可以加分。
  4.从root搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象。
  分析:我期待的答案。但是的确很少面试者会回答到这一点,所以在我心中回答道第3点我就给全部分数。
  最后由一个问题:“做什么事情”,这个问发挥的空间就太大了,不同年代、不同收集器的动作非常多。
  1.删除不使用的对象,腾出内存空间。
  分析:同问题2第一点。40%。
  2.补充一些诸如停止其他线程执行、运行finalize等的说明。
  分析:起码把问题具体化了一些,如果像答案1那样我很难在回答中找到话题继续展开,大约占40%的人。
  补充一点题外话,面试时我最怕遇到的回答就是“这个问题我说不上来,但是遇到的时候我上网搜一下能做出来”。做程序开发确实不是去锻炼茴香豆的“茴”有几 种写法,不死记硬背我同意,我不会纠语法、单词,但是多少你说个思路呀,要直接回答一个上网搜,我完全没办法从中获取可以评价应聘者的信息,也很难从回答 中继续发掘话题展开讨论。建议大家尽量回答引向自己熟悉的,可讨论的领域,展现给面试官最擅长的一面。
  3.能说出诸如新生代做的是复制清理、from survivor、to survivor是干啥用的、老年代做的是标记清理、标记清理后碎片要不要整理、复制清理和标记清理有有什么优劣势等。
  分析:也是看过《深入JVM虚拟机》的基本都能回答道这个程度,其实到这个程度我已经比较期待了。同样小于10%。
  4.除了3外,还能讲清楚串行、并行(整理/不整理碎片)、CMS等搜集器可作用的年代、特点、优劣势,并且能说明控制/调整收集器选择的方式。
  分析:同上面2个问题的第四点。
  最后介绍一下自己的背景,在一间不大不小的上市软件公司担任平台架构师,有3年左右的面试官经验,工作主要方向是大规模企业级应用,参与过若干个亿元级的项目的底层架构工作。
  java面试官如何面试别人(二)
  1.前台后台都做吗 10分
  这一般是我的第一个问题,超过90%的人会回答:“都做,后台多一点,前台少一点”
  这不是我想要的答案,鬼都知道程序员都要多少涉及一下前台,后台更不用说了.
  碰到过一个聪明人,他是这么回答的: 前台js写的比较熟练,html的框架模板也能搭建的非常整齐美观,只是特效能力比较差
  这个问题我不想过多讨论,加分但不减分
  2.事务,什么是事务,为何用事务 10分
  大部分面试者,就会举各种各样的例子(比如银行存钱,这个最多)来说明这个问题,其实他们都理解.
  但这不是我想要的答案,我期望的答案只有一句:“保证数据的一致性和完整性” ,可惜只有5%左右的人答出来了
  这个问题可以大概了解出面试者的分析能力,以及语言总结能力,还有他们对这个玩意的理解程度
  答不出减分,举例子不加分
  3. 面向切面(AOP),原理是什么 10分
  这个就是对技能的掌握程度了
  大部分又是举例子,什么找中介啊之类的, 其实就是来掩盖他们懂一点实现逻辑,但是不知道源码怎么实现的.
  但还真是有学霸能把代理的原理讲出来,非常好.
  答不出减分,举例子不加分,讲出原理双倍分.
  4.两个项目之间如何通信 10分
  很基础的问题,答上来就有分,说明你接触或者了解过网络
  5.在上个问题基础之上问,碰到乱码怎么解决,utf-8和gbk可以直接转换么 10分
  大部分应聘者到这里基本就开始胡扯了. 有说声明字符串编码接收的,有说改项目编码的,各种各样五花八门.
  更有甚者,utf-8和gbk可以直接转换…
  直接说明了他们完全没有遇到过此类问题,也并不了解编码.
  答不出不减分,胡扯减分,答对双倍分.
  6.简述一项技术或设计模式的原理 20分
  这个几乎是送分的,但90%的人答不出.我很不解.
  答不出减分,答出加分

另外求职的各位同行,希望多锻炼自己的口才与技术.

[img]http://dl2.iteye.com/upload/attachment/0128/9334/5ae2de91-611a-3a25-b1ad-46c3aaa29858.jpg[/img]

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java面试官如何面试别人 的相关文章

  • CursorAdapter 破坏了 CHOICE_MODE_MULTIPLE 选项

    我有一个ListFragment 我在其中添加一个CursorAdapter to my ListView 并且我希望能够单击几行以使用上下文操作栏 我使用 SherlockActionbar 当我使用一个简单的ArrayAdapter 但
  • 设备锁定时,互联网音乐播放器无法加载歌曲(打瞌睡模式?)

    我正在构建一个音乐播放器 可以播放互联网上的歌曲 我注意到 通常 当一首歌曲结束并且必须加载另一首歌曲时 应用程序不会播放下一首歌曲 我等啊等 终于决定解锁手机以了解发生了什么 令人惊讶的是 设备解锁后立即开始播放以下歌曲 第一次我以为这只
  • “android.enableUnitTestBinaryResources”已弃用[重复]

    这个问题在这里已经有答案了 我刚刚更新了我的 Android Studio 现在当我构建我的项目时 我收到此错误 选项 android enableUnitTestBinaryResources 已弃用 这 当前默认值为 假 已从当前版本中
  • Android 在连接 Socket 时出现错误

    在阅读了一些express io文档并成功连接到之后 我尝试使用nodejs和express io编写简单的应用程序http chat socket io在命令行中运行下面的代码并打开后 我找到了使用 nodejs 和express io
  • 空指针异常 - findViewById()

    谁能帮我找出这个程序可能存在的问题 在里面onCreate 方法findViewById 为所有 id 返回 null 这会导致稍后出现空指针异常 我不明白为什么findViewById 找不到视图 有什么建议么 这是主要代码 public
  • 调用“DisplayManagerGlobal.getDisplayInfo()”会导致应用程序中的应用程序无响应 (ANR)

    显然 应用程序中的某些内容从不同线程 主线程和绑定器线程 调用该方法 这会导致内部 ANR 它经常发生 我不知道它发生在哪里 因为我无法在模拟器或我拥有的测试设备上重现它 该应用程序的作用 它是一个应用程序储物柜应用程序 它在应用程序覆盖层
  • 如何将json从android发送到php?

    为了将 json 从 android 发布到 php 我使用了 Volley 库StringRequest目的 StringRequest sr new StringRequest Request Method POST url new R
  • 仅在 MarshMallow(6.0 和 6.0.1)上使用 MapActivity 进行 MapView 会使应用程序崩溃

    我正在使用 MapActivity 扩展我的活动 以动态实现 MapView 其中包含显示 mapView 的片段 public abstract class BaseHomeActivity extends MapActivity 我已经
  • Glide:如何使用 Glide v4 调整 gif 大小并将其另存为文件?

    我想调整 gif 文件的大小并保存它 我尝试使用一些建议的方法 但这些方法给出了错误 后来我知道有些方法在 Glide 中已被弃用v4 byte bytes Glide with context asGif load url toBytes
  • OnSharedPreferenceChangeListener 未调用 #2

    好吧 我开始从 Google 的 android 实现这个可怕的代码 未调用 OnSharedPreferenceChangeListener 这是我的代码 你能建议一下吗 类定义 private SharedPreferences sPr
  • 动态元素 ID 到 setId(int) - Android

    我看到了语法定义setId int and findViewByID int 但我们如何使用findViewById R id row1 我尝试使用这个 Object1 setId Integer parseInt repeat 它没有显示
  • 带 LiveData 的嵌套观察者(观察观察者)

    我有一个案例 我有 BottomNavigationView 其中片段被显示 隐藏而不是添加 替换 因此它们不会每次都经历生命周期 片段1正在观察一个数据库表 片段2正在观察一个不同的 我的目标是调用 onChanged片段2当 on 改变
  • 从壁纸中获取颜色? - 安卓

    如何找到当前壁纸的 平均 颜色并将该颜色设置为我的小部件上的布局 我正在尝试做的一个例子 这是 AccuWeather 上的设置 您可以使用WallpaperManager getWallpaperColors https develope
  • Android 应用安装验证

    我有一个应用程序 其中列出了用户可以安装并赚取积分的一些活动 应用程序列表 现在我主要关心的是安全性 一些用户从模拟器或VPN或其他东西安装应用程序 这样我的客户就无法在Google Play商店中安装应用程序 我见过一些应用程序 如现金海
  • 如何检查 firebase 中是否存在孩子? [复制]

    这个问题在这里已经有答案了 我有一个 firebase 它有一个名为 users 的节点 用户给出一个用户名 我想检查该用户名是否已作为用户节点的子节点存在 这是我目前正在尝试的代码 平台是安卓 String myUsername user
  • Android 是否可以同时使用前后摄像头[重复]

    这个问题在这里已经有答案了 我想同时使用设备的前置和后置摄像头 在我的应用程序中 屏幕的前半部分将显示后置摄像头的预览 屏幕的下半部分将显示前置摄像头的预览 我尝试过设置两个不同的相机预览 但是当我打开应用程序时 屏幕的前半部分 显示后置相
  • Android 2.3 或更低版本上通知中的可点击自定义视图

    我创建了一个自定义通知布局 其中有一个可单击的按钮 到目前为止 在 Android 3 API 级别 11 或更高版本上可以正常工作 但在 Android 2 3 即ContentIntent来自Notification总是覆盖我的布局并且
  • Android - 减少位图绘制的内存使用量

    我的应用程序中有一张地图 显示了 Gowalla 的位置 我使用带有简单默认标记的 ItemizedOverlay 但在绘制项目时 我将默认标记替换为从 Gowalla 下载 9 并缓存在磁盘上 的位置图标 问题是 如果屏幕上有很多位置 例
  • 在 SDK 中找不到文件夹“tools”

    我在做安卓开发使用 Eclipse 我已经下载了所有必需的软件 但遇到了与中讨论的相同的问题 无法在 Eclipse 中设置 Android Target https stackoverflow com questions 6384328
  • 如何将视频转换为base64数据

    我有一个应用程序 可以从相机或图库中获取视频并将其转换为 Base64 数据 并将该数据发送到服务器 但问题是每当我转换 Base64 数据时 videodata 变量中的数据都不是正确的 为此我使用了下面的代码 FileInputStre

随机推荐

  • 安装windows版caffe

    MATLAB操作caffe框架 安装之前先谈谈我的电脑硬件配置 Qudra K600 的GPU 计算能力是3 0 你在安装之前也要搞清楚自己的GPU显卡是什么 看看到底支持不支持CUDA 如果支持 要查查计算能力是多少 后面配置参数要用到
  • windows环境下查看Python的安装路径

    1 windows r 进入cmd命令 2 查看python安装路径 where python
  • 常见的几种Sort排序算法

    几种常见的Sort排序算法 1 排序的基本概念 有n个记录的序列 其相应关键字的序列是 相应的下表序列是 通过排序 要求找出当前下标序列的一种排列 使得相应的关键字满足如下的非递减 或非递增 关系 这样就得到一个按关键字有序的记录序列 该文
  • ant design pro 跳转新页面 修改功能

    ant design pro 修改功能跳转新页面 背景 例子 页面跳转 背景 在官方提供的例子中 是以弹窗的形式做的修改和新增 在项目中如果遇到 采集项数较多 会在修改页面添加别的功能的情况下 弹窗满足不了此需求了 例子 页面跳转 先说修改
  • 计算机网络校园网网络设计报告,计算机网络课程设计报告-校园网的组建和应用...

    计算机网络课程设计报告 校园网的组建和应用 北 京 邮 电 大 学校园网的组建和应用 计算机网络课程设计指导老师 吴建伟老师刘亦桐老师小组成员 姓名 班级 学号王 超 06121 060648曹 振 06121 060643郭 嵩 0612
  • 我的创作纪念日

    机缘 咱记性不好 技术也差 实验过程中总是遇到奇奇怪怪的问题 有些问题找了好久也没找到完全适合自己情况的解决方案 很多情况下需要结合多篇文章进行总结 为了下次遇到类似问题能够快速解决 同时也为遇到同样问题的小伙伴们能够快速找到详细的问题解决
  • 基于HAL库的stm32f103c8t6的快速开发笔记(简易版)—— 5、STM32的PWM输出(附舵机控制)

    1 概念了解 首先了解到 PWM生成是在通用定时器的基础上配置的 每个通用定时器都有多路通道输出PWM信号 这里以TIM4 定时器4 为例 在图形配置面板找到TIM4的通道一作为PWM输出管脚 其管脚为PB6 打开左侧定时器配置面板 可以看
  • HBase工作机制

    1 图示 2 组件说明 Client hbase客户端 1 包含访问hbase的接口 比如 linux shell java api 2 除此之外 它会维护缓存来加速访问hbase的速度 比如region的位置信息 Zookeeper 1
  • 【MySQL】基础SQL语句——库的操作

    文章目录 一 创建数据库 1 1 基础语句 1 2 字符集和校验规则 1 3 校验规则对读取数据的影响 二 查看数据库 三 修改数据库 四 删除数据库及备份 4 1 删除 4 2 备份和还原 结束语 一 创建数据库 1 1 基础语句 最简洁
  • 微信小程序期末大作业 点餐小程序

    点餐小程序 小程序如图所示 下载链接在文末 点我下载资源 https download csdn net download weixin 43474701 58000564
  • xshell连接ubuntu失败排错指南

    本人在学习linux系统中出现了一些远程连接失败的问题 以此笔记记录下排错过程 注意 VMware桥接模式需要让虚拟机的ip和物理机的ip在同一网段 因此需要手动配置linux系统网卡 NAT模式虚拟机ip不需要和物理机ip在同一个网段 但
  • Python Tkinter详解 (二)Label标签的使用

    一个简单到不能再简单的标签 import tkinter as tk window tk Tk window title Label的使用 window geometry 400x400 label tk Label window text
  • 【动手学深度学习v2】第二章预备知识-2.1入门

    入门 深度学习领域方向自然语言处理 计算机视觉 深度学习 具体领域 图片分类 物体检测与分割 样式迁移 为图片加滤镜 人脸合成 文字生成图片 文字生成 无人驾驶 张量 表示一个多维矩阵 核心是一个数据容器 多数情况下包含数字 可以想象成一个
  • Java中WebService接口的生成、打包成.exe、设置成Windows服务、及其调用、Apache CXF调用

    一 Java中WebService接口的生成 1 在eclipse工具中新建一个普通的JAVA项目 新建一个java类 JwsServiceHello java package com accord ws import javax jws
  • 蓝桥杯2014年第五届真题-拼接平方数

    题目 题目链接 题解 实现题 题目大意 将一个区间内的数拆成两个数后 若原数 拆得的第一个数和拆得的第一个数均为平方数则输出 直接遍历区间内所有的数可能会超时 因此我们直接取区间内的平方数 只遍历区间内的平方数 时间复杂度会降很多 对于每个
  • Windows和Linux下共享内存使用

    源码地址 https github com ylmbtm GameProject3 看过我开源代码的朋友知道 我这个项目在逻辑服和数据服进行数据同步采用的就是共享内存 其实数据同步的方式有很多种 其中使用较多的一种方式就是tcp网络协议同步
  • CSS布局的三种机制:浮动

    CSS布局的三种机制 浮动 浮动 float 为什么要学习浮动 什么是浮动 float 浮动小结 浮动的应用 清除浮动 为什么要清除浮动 清除浮动本质 清除浮动的方法 额外标签法 隔墙法 父级添加overflow属性方法 使用after伪元
  • jdk的安装

    由于要使用jmeter进行接口自动化测试 而jmeter的使用 必要要安装jdk 因此就在网上随便找了一篇jdk的安装教程 由于我喜欢自定义安装 结果费了半天时间也没安装成功 前期后后安装与卸载不下5次 最后决得可能是jdk不能自定义安装的
  • 接口设计说明书模板

    目 录 1 引言 1 1 1 设计目标 1 1 2 适用范围 1 1 3 相关术语 1 1 4 参考资料 1 2 分析设计 1 2 1 设计思想 1 2 2 接口结构 1 2 3 数据流分析 2 3 中间库接口 2 3 1 中间库说明 2
  • java面试官如何面试别人

    java面试官如何面试别人 一 java面试官的 面试心得 在公司当技术面试官几年间 从应届生到工作十几年的应聘者都遇到过 先表达一下我自己对面试的观点 1 笔试 面试去评价一个人肯定是不够准确的 了解一个人最准确的方式就是 路遥知马力 日