掌握这些回答技术面试题的诀窍,让你offer拿到手软。
三、四月份,春回大地,万物复苏(请自带赵忠祥老师的BGM),又到了不少同学的跳槽时节。
最近一段时间团队也在招人,这期间筛选了不少简历,面试了一些候选人。这里谈谈我自己的对「怎样回答面试题」的理解。
欢迎各位各位老司机,新司机一起留言交流,我们一起探讨下,无论做为「面试官」,或者是「求职者」,怎样回答面试题,能更好的去解答问题,达成自己求职的目标。
一、听清题,勿抢答
面试,首先也是一个人与人交流沟通的过程。有些时候,面试官还没说完问题,面试者就会打断说「这个问题我知道...」。打断不利于沟通,同时,这样其实导致面试题没听清。比如面试题是「如何理解Java 的 JMM,...」后面还没说的时候,面试者打断说「你说的这个我会。。。,包括方法区,堆,栈 balabala」这就答的都跑偏了。
二、从全局、到具体
如果问题是「 Spring 是什么,怎样理解的」。很多人就会直接回答「Ioc 和 Aop嘛」这样说不能算错,但我个人认为从一个更宏观的方式先入手,再具体介绍对于 Spring 你深入了解的一个或者多个方面,这样感觉更好一些。
发展到今天,Spring 并不仅仅只有Ioc 和Aop,而是一个包含一系列功能的XX,像快速开发的Spring Boot, 像微服务支持的 Spring Cloud, 像支持认证和鉴权的 Spring Security, 支持各种抽象的Spring data 提供的 xxxTemplate,Testing, 以及现在使用众多的 Spring MVC。当然 Denpendency Injection 和 AOP 依然是核心。
再比如回答如何理解Java的垃圾回收机制,比起直接回答 「将无用的对象清除出内存」这类概括,如果描述垃圾回收,什么时候会发生垃圾回收,具体的回收方式,了解哪些回收算法。出现OOM时如何调整,以及 JVM 的内存划分等,我感觉效果会好很多。
三、不要骄傲自负,也不妄自菲薄
面试官在提问之后,有的候选人问题还没听完,一是抢答,二是不屑。心想为啥问这么简单的问题。其实面试大家都理解为一个不断沟通,发现面试者长项的「交流」。比如有的面试者一听「请写一个单例模式」时,会略有不爽,仿佛才华被埋没了,却在「双重锁检查」时,大意失手,忽略了CPU 指令重排序的影响。
还有的面试者,在面试官刚说出「接下来我们写一个算法题...」还没说完时,会抛出选项,「要不我写个快排,二分查找?balabala」,如果你是面试官,你会怎么做?
也有一些面试者,在被问到简历中所写项目时,「眼神黯淡」,说道「我们没做什么有技术含量的,和你们没法比」,又或者在面试官说到项目中的某个实现时,会说「你们也用了啊」,然后有的不敢向下说,仿佛简历包装过度,也有的则是感觉有更多的共同话题,开始探讨实现,选型等等。所以大胆展现自己,至少有一次机会。
四、简历切勿太夸张,更不要全是产品描述
看过不少简历,有些整个简历里的项目,全是业务和产品介绍,通篇没提到几个技术点,不讲实现,不写用了什么技术,全是大段的文字描述。做为一个技术面试,没有什么技术性。
也有不少,简历里写着精通XX技术与YY框架,是ZZ专家。其实实际交流时,真的是只限使用,都没配置过。
一个「熟悉」的大部分时候会大于一个「精通」的水平。
五、广度与深度
一般的面试,都会根据面试者的实际工作经验时长,对应到该有的广度与深度。但广与深两者间,我认为先深入一个领域,一个概念,再拓展开来,这样效果更好。
而且面试过程中,如果每问到一个话题,都是平常,或者是简单了解过,会给人一种浅尝辄止的感觉。如果某个方面深入,在回答相应的问题时得心应手,甚至可以回答「你最擅长什么?」时,可以更有底气。比如聊 Java 的并发 。除了能描述 sync 之外,先按从全局到具体,可以描述「内存模型」,以及Happens Before, Lock 与 sync 的区别。Lock 与 sync 分别对应的实现,以及JVM 的 monitor 指令, AQS ...
去年电话面试一个实习生,对于开发框架还在自学阶段,问到一些未学习到的部分,会实话说「目前还没学到」,甚至精确到说XX技术「今天就要学了」,有计划,有学习能力。但其描述的这种学习方法,态度 以及对已经学习部分的掌握程度与理解,对应表现出来的水平,都让人印象深刻。后来到公司实习时并没使用框架,而是根据需求使用了新技术,果然也没让人失望。
六、积极主动
这个我自己理解是在回答问题时,可以将自己擅长的展示出来。比如简历里有写到「项目使用过 RPC」,那在回答项目中如何使用RPC的时候,可以描述一些 RPC框架的设计实现思路,例如「我大致了解过 Dubbo 是这样设计的」,和 「Thrift 有这些区别」,当然,这个时候面试官可能会问,有了解过 grpc么? 你会怎么办?
此外,在讲述项目使用技术时,可以顺便将自己为什么这样做,为了什么选择使用这个技术,这样简历之外的丰富信息,才会让面试官更立体的了解,从而为「交流」打开局面。
七、有证明更佳
如果能在简历里附上一个长期活跃的开源项目,不断输出的Blog 等等,也是一个让人更全面了解你代码风格,展现设计、思想的方式,学习方式的「平台」。
当然了,这些回答技术面试的方法,前提都是你要有过得去的硬实力
那从哪里学习才能获取过硬的技术以及过硬的胆识呢?以下便是我学习了这个课程体系,才是我有这么过硬的技术以及过硬的胆识。
推荐一个交流学习群:454377428里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多,以下的课程体系图也是在群里获取。
推荐课程体系:
一、性能调优
二、源码解读
三、分布式
四、微服务
五、团队协作开发
六:B2C商城项目实战
掌握这些回答技术面试题的诀窍,让你offer拿到手软。的更多相关文章
- Java实习生常规技术面试题每日十题Java基础(三)
目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...
- .NET技术面试题系列(1) 基础概念
这是.NET技术面试题系列第一篇,今天主要分享基础概念. 1.简述 private. protected. public.internal 修饰符的访问权限 private : 私有成员, 在类的内部 ...
- 最新阿里Java技术面试题,看这一文就够了!
金三银四跳槽季即将到来,作为 Java 开发者你开始刷面试题了吗?别急,小编整理了阿里技术面试题,看这一文就够了! 阿里面试题目目录 技术一面(基础面试题目) 技术二面(技术深度.技术原理) 项目实战 ...
- 阿里、华为、腾讯Java技术面试题精选
阿里.华为.腾讯Java技术面试题精选 2017-10-27 19:30技术/腾讯/华为 JVM的类加载机制是什么?有哪些实现方式? 类加载机制: 类的加载指的是将类的.class文件中的二进制数据读 ...
- Java实习生常规技术面试题每日十题Java基础(八)
目录 1.解释内存中的栈(stack).堆(heap)和静态区(static area)的用法. 2.怎样将GB2312编码的字符串转换为ISO-8859-1编码的字符串? 3.运行时异常与受检异常有 ...
- Java实习生常规技术面试题每日十题Java基础(七)
目录 1. Java设计模式有哪些? 2.GC是什么?为什么要有GC? 3. Java中是如何支持正则表达式. 4.比较一下Java和JavaSciprt. 5.Math.round(11.5) 等于 ...
- Java实习生常规技术面试题每日十题Java基础(六)
目录 1.在Java语言,怎么理解goto. 2.请描述一下Java 5有哪些新特性? 3.Java 6新特性有哪些. 4.Java 7 新特性有哪些. 5.Java 8 新特性有哪些. 6.描述Ja ...
- Java实习生常规技术面试题每日十题Java基础(五)
目录 1.启动一个线程是用run()还是start()? . 2.线程的基本状态以及状态之间的关系. 3.Set和List的区别,List和Map的区别? 4.同步方法.同步代码块区别? 5.描述Ja ...
- Java实习生常规技术面试题每日十题Java基础(四)
目录 1.String 和StringBuffer的区别. 2.数组有没有length()这个方法? String有没有length()这个方法? 3.final, finally, finalize ...
随机推荐
- 芝麻HTTP:爬虫的基本原理
我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛.把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息.可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛 ...
- 求字符串空格、数字、字母个数--JAVA基础
相关内容:charAt()函数 package com.nxl123.www;public class NumString { public static void main(String[] arg ...
- 洛谷P2633 Count on a tree(主席树,倍增LCA)
洛谷题目传送门 题目大意 就是给你一棵树,每个点都有点权,每次任意询问两点间路径上点权第k小的值(强制在线). 思路分析 第k小......又是主席树了.但这次变成树了,无法直接维护前缀和. 又是树上 ...
- [BZOJ1053] [HAOI2007] 反素数ant (搜索)
Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数 ...
- mysql的conv的用法
这次的ctf比赛用到这个函数,这里记录一下 题目禁了ascii , ord 那就使用conv 这个函数是用来将字符转换进制的,例如将a转成ASCII码(换个说法就是将16进制的a换成10进制) 那就直 ...
- java&python环境变量+idea&pycharm激活
java: JAVA_HOME=C:\jdk1.5.0_06 PATH=%JAVA_HOME%\bin;%PATH% CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\l ...
- HAproxy负载均衡
HAproxy 简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. HAProxy特别适用于那些负载特大的web站点,这 ...
- 【Spring源码分析】配置文件读取流程
前言 Spring配置文件读取流程本来是和http://www.cnblogs.com/xrq730/p/6285358.html一文放在一起的,这两天在看Spring自定义标签的时候,感觉对Spri ...
- CLOB型转成字符型
//oracle.sql.Clob类型转换成String类型 public static String ClobToString(Clob clob) { String reString = &quo ...
- three.js引擎基础知识—摄像机、场景及渲染器
一.three.js采用右手坐标系: x轴正方向向右,y轴正方向向上,z轴由屏幕从里向外,如下图右: 二.3D编程三要素:场景.渲染器.摄像机 1.场景:创建的物品和模型都需放入场景中 threejs ...