2020java面试总结

2023-05-16

博主背景:92年生,渣本毕业,java岗,经验接近6年,base上海

本文宗旨:本文旨在将博主最近的面试经历分享给大家,并作些总结,尽量为在准备面试的同学缩小面试准备的范围,或者至少让同学们知道现在企业都问些啥,以及一些面试的注意事项,希望对你有参考作用

本次面试情况:2020年7月中开始,持续3周多时间,面了13家,2家没过,1家意外,10家通过,如下:

1)拍拍贷,业务岗资深技术专家+基础架构部资深技术专家,技术五面(这家经历比较特殊,两个岗位都通过了,所以技术面了5轮)

2)平安普惠金融,职级C2,技术三面(通过)

3)微众银行,技术两面(通过),是博主现在的东家…(最近东家在扩张,请允许我发两个招聘链接,内推呦)
社招链接:http://webanknew.cheng95.com/position/searchbole_id=1392781&channel=1
校招链接:http://webanknew.cheng95.com/position/searchbole_id=1392781&channel=2

4)北京什么值得买,架构师岗(一面没过)

5)soul,高级java,技术三面(通过)

6)多点small,技术三面(通过)

7)萨摩耶数科,技术三面(通过)

8)中国电信,云计算部门,技术三面(挂在技术三面)

9)哈罗单车,技术两面(通过)

10)蚂蚁金服,国际事业群(就是出了意外的那家…技术一面+做题,当场面试官反馈通过,第二天出了幺蛾子,说是我们公司算他们资方,不能招,我当然认为是扯淡,后续跟猎头了解到,蚂蚁对资方企业的员工简历有几个月的冷冻期,非常遗憾,没见识到蚂蚁面试官的厉害…)

11)饿了么,风控部门,职级P7(饿了么P7只能对标阿里P6,P6+),技术三面(通过)

12)2345,架构师岗,技术三面(通过)

13)普洛斯,技术二面(通过)

我从面试题风格的角度出发,把面过的公司分分类,同时会附上遇到的技术题,大部分问题会附上一些线索,如果你感兴趣,希望可以自行去寻找答案。我会标注出一些高频题,这种题都是博主面试过程中多次遇到的,希望引起你的重视。另外,我会根据面试主题推荐一些相关的书籍、视频、专栏等资料,都是我看过并觉得不错的、并且对面试直接有用的学习资料,你可以根据自己的兴趣选择

文章最后,会给出一些技术题之外的注意事项,也很重要呦…

上面试题

>>问题有点刁钻的:2345一面

一面面试官的开场白是这样的:我们正在招一个高P的,实力够硬的架构师,来做我们中台的建设

说实话,博主自认达不到"高P"的水平,当时心里还是有点虚的,没办法只能硬着头皮上了,问题如下:

1.什么情况下hashMap会导致oom(除了一直put的情况):呃…这是什么套路,问问1.7和1.8的区别不是挺好吗,我已经背好了啊(呃…是理解),这才是第一题呀,为什么这么不友好

这题跳过,后面也懒得去查了,忘了它!

2.解释下DDD聚合根、聚合的含义:这是唯一一家问了DDD(领域驱动设计)的公司,博主对DDD的了解也仅限于理论的学习,当时给出的答案只能算勉强。国内使用DDD的公司并不多,可能是学习成本比较高的缘故,并且要想推行DDD,对团队成员要求都比较高,一旦碰到了使用DDD的公司,说明他们的技术要求挺高。如果你想学习DDD,不要上来就啃**《领域驱动设计》《实现领域驱动设计》这两本书,内容过于抽象,助眠效果甚好…可以先看看极客时间的《DDD实战课》**,通了后再考虑要不要去啃那两本书,关于DDD的学习,我得引用下王争老师在极客时间的专栏《设计模式之美》第11讲中的一段话:不过,我个人觉得,领域驱动设计有点儿类似敏捷开发、SOA、PAAS等概念,听起来很高大上,但实际上只值"五分钱。做好领域驱动设计的关键是看你对自己所做业务的熟悉程度,而不是你对领域驱动设计这个概念本身的掌握程度,即便你对领域驱动搞得再清楚,但是对业务不熟悉,也并不一定能做出合理的领域设计",所以不要花太多时间去研究它,但注意不是不研究,DDD作为一种架构设计方法论,比之于传统的架构设计方法还是有很大不同的,你需要去了解这种新的思路,最起码面试问到了,正好你又会这一块内容,你就比较有优势

3.mysql的binlog redolog undolog含义,如何配合保证一致性:这个在丁奇的**《mysql实战45讲》**中有详细说明,无论是DBA还是开发人员,这本"书"绝对不容错过,因为是专栏形式,每篇文章后都有答疑,你会发现有些答疑甚至比正文还要精彩,作者非常耐心的对每个提问作了回复,引导读者去思考,可谓谆谆善诱

4.mvcc存在的意义,事务中mvcc如何协调读和写的:**高频题!**这个在我的博文"隔离级别与mvcc的那些事"中有详细说明

5.ConcurrentHashMap如何做到在foreach时的线程安全

6.tcp的四次挥手过程,TIME_WAIT状态的意义、带来的问题、TCP的哪几个参数可以解决TIME_WAIT状态带来的问题:**高频题!**tcp的问题中,四次挥手比三次握手高频很多,问到四次挥手,TIME_WAIT肯定少不了;tcp常见的面试题不是很多,大概分为这几块:TCP四元组,三次握手、四次握手到底是在干啥、tcp如何保证可靠性、流控怎么做的,TIME_WAIT状态的含义及解决方案

7.netty的FastThreadLocal为啥比jdk的ThreadLocal快:因为技术栈里写了熟悉netty源码,所以问到,答案是数据结构不一样,前者为数组,后者为使用线性探测法的hashMap,感兴趣的童鞋可以看下源码

8.zk的一致性级别

9.redis cluster集群新增节点后,集群如何将slot迁移到新的节点,描述下这个过程:这个在**《redis设计与实现》的17.4节中有说明,由于看书时间过去了很久,答得不太好;《redis设计与实现》加上《redis深度历险》,这两本redis经典书籍**,即使你现在没时间看,后面也最好抽时间看看,看完再遇到redis面试题,一点不虚

10.设计一个redis热点key的处理方案,怎么实时检测出热点key,检测出之后怎么响应

11.设计一个最短响应时间负载均衡策略,算是笔试题,让我在第二天10点前把答案微信发给他:下面是我给出的第一版方案:

当时面试官用委婉的方式表达了对方案的不满意:

您都这样问了,我还敢说是嘛

既然是开卷,一定是允许查资料的,随后了解到dubbo里就有一个最短响应时间负载均衡策略,当然了,如果我直接把dubbo的这套策略搬出去,很明显是在怀疑面试官的智商,在看过这块的源码后,我又给出了一版方案:

一面最终是过了,面试官这样评价

我觉得大概是最后一题救了我的小命,挺喜欢面试官这种引导面试者思考的方式,可惜并不多见

二面大多是项目问题,技术问题只记住了这样几个:

1.看你写的熟悉mybatis源码,你说说mybatis的二级缓存怎么实现的:直接说不会,因为这块没看过

面试官接着问那你熟悉mybatis哪块,我就跟他讲了讲mybatis的整体架构,以及查询的工作流程,核心组件如何协作…

2.spring中bean的生命周期

3.spring怎么解决循环依赖的

(这三道题恰巧都是**高频题,**因为mybatis比较小巧、网上资料很多,上手难度不高,建议你看下这块的源码;spring源码就太多了,暂时没有碰到直接问spring某一块源码的,2/3两题是spring中最高频的问题,第2题因为spring中bean生命周期的每个节点都涉及到一个扩展点,如果你写过通用功能,一般都会接触到相关的扩展点类,所以面试官比较钟爱;至于第3题,搞不懂为啥是网红题,大概是没啥好问的了吧… )

第3题网上的答案大多看起来比较费劲,我给你简化下,你可以这样回答:

spring是采用三级缓存解决这个问题的(表明你看过源码了),三级缓存搞的比较复杂,但本质上是因为对象的构造和初始化两步可以独立开(先new,再set,没人不知道吧?),A依赖B(要注入B),B又依赖A(要注入A),spring在new完A后将其放到容器map中,A.setB时发现B不在map中,接着去new B,也放入map中,然后B.setA,发现map中可以取到,B.setA完了再接着A.setB,结束

>>底层问题较多的:拍拍贷基础架构岗

在拍拍贷的面试经历比较独特,开始面的是业务部的技术专家岗,问题基本上都是围绕项目来的,没啥可说的,三面boss面时,提到我写了个rpc框架后,面试官大腿一拍,说正好他们基础架构部在招人,然后换基础架构部的面试官来面,问题如下:

1.进程上下文切换原理,切的是什么:我的博文"深入理解上下文切换"正好就是关于上下文切换原理的,所以这题答得不错,关于操作系统原理,想要学习的同学可以看看B站的视频**“操作系统_清华大学(向勇、陈渝)”,**这是我看过唯一一个不需要倍速的视频教程,香的很

2.java类加载过程,说到双亲委托机制时,又问什么时候需要打破双亲委托机制:举了个SPI的例子,然后说明了下SPI如何利用中的线程上下文类加载器加载扩展类

3.try with resource为啥能关闭资源:因为资源对象都实现了java.io.Closeable接口…

4.我写的rpc协议为啥用定制的tcp,而不是http,这个问题不仅只局限于rpc框架,但凡是涉及到定制tcp协议和http选型时,都可以拿来问:用http和自定义tcp协议的本质目的不同,前者为了普适和通用,后者为了性能;http的使用非常广泛,不管是手机、浏览器、还是现在的物联网设备,都可以非常方便的接入http,所以说用http协议可以非常方便的支持各类终端,可以算作普通话;自定义的TCP协议只能用作内部交流,不具有普适性,算作内部黑话,由于tcp属于http下的一层,性能上会更好,但其实对于rpc协议来说,往往并不是性能极度敏感的场景,http协议的性能已经能满足了,不需要定制化的去提高性能,这是一个开放的时代,互联互通的世界,保证基本性能的前提下,通用和兼容性才是最重要的事情

5.rpc的心跳机制怎么做的,为啥不用tcp自带的keepalive:说了下netty的IdleHandler,基于它实现keepalive机制的原理

6.堆外内存为何存在,使用场景是? 如何释放堆外内存:**高频题!**我的博文"read write、mmap、directBuffer、sendfile傻傻分不清楚?"中对java的堆外内存directBuffer概念有作说明

7.相对于BIO,NIO本质上带来了什么好处,为何:NIO毫无疑问是**高频题!**吞吐量更高,NIO模型下,用户线程需要阻塞的时间更短(因为不需要用户线程轮训网络对端的数据是否就绪,由专门的selector线程去做),也就是说同样数量的线程,NIO模式下的阻塞时间更短,吞吐量自然更高

8.redis的数据分片集群中:cluster集群和基于proxy的集群,各自利弊,如何选型:1)性能:proxy模式多一层网络开销,对于性能敏感的场景,这一点要慎重考虑;2)客户端复杂度:使用proxy方式,客户端与原来处理单机redis方式一样,不用变化;cluster方式就要复杂很多了,客户端需要连接所有cluster节点,还需要维护key与节点的关系,cluster中还存在move和ask两种重定向问题,都需要客户端去处理;3)运维复杂度:为了实现去中心化,cluster集群内置了复杂的raft和Gossip协议,存在大量需要调优的参数,如果出现问题,往往很难下手;

9.redis cluster集群有多少个slot,用什么算法将key映射到slot:slot数量答出来了,什么算法不知道,猜了个一致性hash,但是不对

10.一致性hash用于解决什么问题:接着上一问,用于解决hash算法负载均衡时,节点数量发生变化后对负载均衡的结果变动过大的问题,高频题!

11.用过哪些设计模式,什么场景、怎么用的:**高频题!**设计模式的重要性不用我多说了吧,23种设计模式,常用的就那么些,工厂模式/模板方法模式/代理模式/适配器模式/观察者模式/策略模式/责任链模式,只看概念感觉很好理解,但重要的是要去写!多在平时编码过程中用一用这些设计模式,才能深刻理解,面试官不傻,不会简单的问下概念就了事…

12.如何设置合理的线程数?为啥有阻塞,线程数需要多一点:**高频题!**我的博文"透过rocketMq探究netty源码以及netty的通用生产实践原则"中第一节就说明了这个问题

13.我们项目用的哪种垃圾收集器,简单说一说:高频题!现在市面上企业用CMS的最多,我就大致说了下CMS的特性和原理,并将其与G1作了比较,关于GC的知识,极客时间的《java核心技术36讲》的27/28两讲说的比较清楚,建议你去看一看,值得注意的是,这门课程是专为面试准备的同学准备的,java基础中常见的面试题都有涉及,所以建议你全部看一遍,博主看下来觉得有些地方说的不太明确(尤其是前面几节),如果你也遇到不太明白的地方,应该及时查询资料,解决疑惑;还有些地方需要读者自己啃一啃源码,才能更好的理解

>>java基础覆盖最全面的:soul 技术一面二面

虽然是家不太知名的公司,但是问的可真全,而且两位面试官都很年轻!

可是…为什么回忆不起来他们都问些啥了…

好吧,事实是这家面完有事耽搁了几天,没及时记下题目,后面再整理时只回忆起了几道题:

1.ReetrantLock如何实现?aqs的原理,公平锁非公平锁

2.countDownLatch和CycleBarrier的使用场景有何区别

前面都是java基础类问题,还有很多其他的题,大多在上述的**《java核心技术36讲》**中都有提到,再次建议各位读一读

3.怎么提高redis批量操作效率,说说pipeline的原理:《redis深度历险》一书的"深入理解管道本质"一节中有提到,加上前面提到的《redis设计与实现》,这两本redis经典书籍,即使你现在没时间看,后面也最好抽时间看看,看完再遇到redis面试题,一点不虚

4.springboot解决了什么问题,原理:解决的就是使用spring时pom依赖管理、以及注入各种spring自带的bean这两个麻烦,解决依赖管理很简单,bean的自动装配就需要读者撸一撸代码了,**高频题!**可以说是springboot的必考题了

5.spring的生命周期:前面说了,高频题!

6.redis缓存一致性问题如何解决:高频题!

7.redis中zset的底层数据结构,为何这样设计:开始是压缩表,达到一定容量后转为跳表,设计上是基于空间时间的取舍,在**《redis深度历险》**中有提到

8.挑一个你用的频率最高的设计模式说一说:设计模式,前面说了,高频题!

>>阿里系的:

不得不说,阿里系的面试官挺nice,不需要自我介绍(有点烦上来就让自我介绍的,我的经历简历上你不会看?我说了你还不是得问问题,直接问不好嘛!),态度很好,问问题时一直往你会的点上引,尽量让你充分发挥,这样招人的策略就很好,面试者发挥的越好,面试官也能判断的越精准。关键是**不卡学历!**这点对我等渣本生算是非常友好了,话说上海的其他大厂博主能投的都投了,一点反应没有…同学们多找找可以内推的机会(脉脉好像有?没试过,还有些网站上活跃着各个大厂内推的帖子,你也可以找找,机会要比自己投的大得多)

>>>>哈罗单车一面:

哈罗一面可以说覆盖的点最全了(项目、架构、压测、性能、基础、分布式、你擅长的点)

1.先问项目

2.怎么画架构图,画了几类架构图,用什么工具画的

3.项目的一些性能参数(多少机器,什么配置,日活,平均TPS,峰值TPS这些你都得心里有数)

4.压测压到什么程度(用户数、并发数、tps)、关注哪些指标

5.性能优化关注哪些点,优化前后效果对比

项目问了接近一小时,然后问技术点,先问我哪块源码看的比较多,我说netty,就问了一些netty的问题

6.netty启动过程

7.netty的线程模型,有几种线程池

8.说到boss线程和work线程时,问了netty新连接接入的过程,怎么从boss线程转到word线程

9.pipeline的组成元素,主要组件,IO事件传播顺序

10.netty如何解决粘包拆包问题

如果你的技术栈里没有netty,请忽略,如果有,或对netty感兴趣,**《netty实战》**是强烈建议你看的,我的博文"透过rocketMq探究netty源码以及netty的通用生产实践原则"和"netty源码分析_带你搞懂ChannelHandler事件传播顺序"中介绍了一些netty的原理,你也可以看看

11.springboot源码看过嘛?能大概说说么,上面已经说了,**高频题!**读者可以翻回去看看具体要怎么准备

12.线上频繁fullGC怎么解决

13.mysql的索引结构,索引常见的优化原则,**高频题!**基本上问到mysql的都会问这两题

14.分布式事务解决方:说了下2PC,3PC,各自的优劣势,由于对基于分布式事务消息的最终一致性解决方案比较熟悉,我详细的说了下这块,我的博文"rocketMq事务消息原理与二阶段提交"介绍了rocketMq实现分布式事务消息的原理,你有兴趣也可以看看

15.分布式ID生成方案:说了下雪花算法

16.zookeeper的选举过程是怎样的,这个在**《从Paxos到Zookeeper 分布式一致性原理与实践》**一书的7.6节有详细的说明,这本书是zookeeper入门好书,还附带介绍了写分布式基础知识,建议一读

>>>>饿了么:

1.前两面都做了笔试题,第一道考得是对ThreadPoolExecutor的线程池以及原子变量的理解,第二道是将一个可能满足double的字符串,转换成double类型输出,不能使用高级API(这题在soul三面也遇到了…)

2.spring中事务的传播特性,并结合实际使用场景问事务的执行情况

3.事务的隔离级别,mysql中的事务隔离级别,是否存在幻读

4.springboot源码,再次出现,高频题!

5.七层网络协议

6.四层网络协议,网络层解决什么问题,传输层解决什么问题

7.tcp四元组包括哪些、tcp如何做到可靠送达,高频题!

8.数据库高可用方案

9.mysql主从延时问题如何解决,高频题!

10.会关注时下流行的技术么?

11.谈谈对云原生的理解

>>>>蚂蚁金服:

1.笔试题:分布式场景下,A系统调B系统的s服务,写下调用逻辑,考虑超时、异常处理,这题考得是幂等控制,分布式接口调用,超时异常问题无法避免,如何正确处理,是分布式系统开发时必须要考虑的问题

2.rocketMq延时队列原理:我的博文"RocketMq消费失败处理逻辑"中说明了提到了延时队列,你可以看一看

其他也没啥特殊的问题了,基本都包含在前面列的问题中,总体来说,蚂蚁一面问题比较常规,没给我留下什么深刻的印象,直到…hr说我被拒绝了,原因文章开头已经说了…

>>面试体验差的:中国电信技术三面

岗位是云计算部门(云存储方向),跟博主的经历是不太匹配的,投简历时看办公地点离我只有一公里,没想啥就投了,居然让我去面试…

一面问题过于简单(Object类中有哪些方法、wait和sleep有啥区别),就不提了,二面:

1.java的内存模型,说一说volatile、happen before:这个我认为也算**高频题!不过本次面试只有这一家问到,看不看读者请自行斟酌,《深入理解java虚拟机》**一书中的第12章就是关于java内存模型与线程的,赶时间可以单看这一章

2.如何用两个线程交替执行某个动作

3.死锁怎么解决:前面提到的B站视频"操作系统_清华大学(向勇、陈渝)"的第11章就是关于死锁问题的,其中基本说明了死锁问题的所有解决方案

4.hashmap为啥用红黑树来树化链表,为啥不是B+树?

5.如果让你设计一个数组结构,数组怎么扩容

6.redis的字符串底层结构,为何这样设计:**《redis设计与实现》**中开始就提到了这块内容

二面结束后,并不是直接三面技术,而是hr,hr跟我说了很多,最后在问了我的薪资要求后,说"等你晚上面了我们部门的总监"后我们再接着谈,这…又是什么新套路?

三面是晚上八点开始的(视频面),面试官大概迟到了10来分钟,来了之后让我一边自我介绍,他一边深深的靠在椅子上、伸懒腰、脱眼镜、揉眼睛、打哈欠…一顿操作那是行云流水,相当无我,您这么累,要不先睡会?

随后让我介绍了下项目,最后让我设计一个电梯调度系统!说实话,我还真不会!想了一会儿,给了个方案,被挑了个漏洞,又想…然后又有漏洞…然后就结束了,之后面试官问了我当前薪资和薪资要求,就没有然后了…

为什么面试体验差还拿出来单独说下呢,一来是觉着这套路有点像给不起工资,二来是提醒各位读者,如果遇到这种面试官,大可以怼上两句然后强势结束面试;你需要人,我需要工作,大家平等,没什么高下之分,基本礼貌做不好的面试官,要嘛是演,要嘛真的是没品,不管哪样,如果是你以后的领导,应该都好不到哪去,直接拜拜,节省时间;为啥我没直接结束面试?因为我傻,反应慢…希望各位不要像我一样

>>最后说说我现在的东家,微众银行:

一面两个面试官(也就是我现在的导师和直属上司),各问了几十分钟,题如下:

1.分布式限流模块怎么做的(比如限制某个产品号10s最大3000tps):设计了两版,都是基于redis,初版用zset设计了个滑动窗口,这个在《redis深度历险》一书中也有提及,滑动窗口有几个明显缺陷,窗口越大(比如从限制10s最大1000tps变成10s最大5000tps)就需要在zset中维持更多的元素,内存占用越大,zset的遍历也会耗时越久;第二版直接在lua脚本中实现令牌桶,然后在redis上执行;随后问了些限流tps、redis负载的问题

2.redis的数据分片集群中:cluster集群和基于proxy的集群,各自利弊,如何选型

3.我写的rpc协议为啥用定制的tcp,而不是http

2/3两个问题上面已经说明过了

4.rpc调用的超时机制如何做的:我的博文"透过rocketMq探究netty源码以及netty的通用生产实践原则"中的第4小节对超时处理有详细说明

5.rocketMq的负载均衡如何做的:rocketMq的负载均衡分为producer生产消息负载均衡,以及consumer均衡分摊消息,具体原理可以参考我的博文"rocketMq原理_客户端与namesrv及broker的交互"

6.rocketMq的offset如何管理的:这块是rocketMq中比较重要的内容,但是博主没看过这块源码…所以答得不太好,面试官也是很直接,说"看来这块内容你不太清楚,就不要强撑着装懂了"

所以说大家遇到不太清楚的,直接跳过比较好,毕竟没有人啥都会,把时间留给会的题成功率会更高

7.http长连接短连接问题,浏览器中发出5个http请求,会使用几个tcp连接,如果都使用一个连接,发出去的多个请求和回来的多个响应如何一一对应

8.开闭原则如何理解

9.里氏代换原则如何理解

10.悲观锁和乐观锁的适用场景问题

11.ThreadPoolExecutor有哪几个参数,如何协调:高频题!

12.在问到我的职业规划时,博主提到如果可以做基础架构方面(说白了就是写中间件)的工作,也是可以的(博主之前的观念是基础架构可以写更nb的代码,自然也就更nb),面试官(我现在的直属上司)面露不解神色,“为什么,技术不是为业务服务的吗?”,博主当时觉得这句话挺有道理啊,支支吾吾了一会这个问题就算过了。但是这件事不能就这样结束了,我得搞清楚为啥面试官会表示不解啊,难道我以前的观念是错的?之后我咨询了好些朋友,有资深架构师,也有做过基础架构的,他们都一致的表示"不看好基础架构",理由如下:1.方向比较局限,未来方向就局限在中间件了;2.市场需求比较少,基本上有基础架构部的企业,业务开发人员至少是基础架构人员的10倍,甚至更多;3.趋势是基础的技术在不断下沉,需要做的基础架构开发工作会逐渐变少;4.基础架构杂事儿比较多,因为开发的东西是给业务部门用的,沟通会占用很大一部分的时间,尤其是跟技术比较挫的业务开发人员对接,说减寿都不为过啊…5.赚钱的永远是业务部门,其他都是为业务服务的,也就是我直属上司的观念。不过也有同学表示刚毕业时做两年基础架构工作,对基本功的锻炼有好处,基础架构工作比较单纯,相对来说更轻松点;我列出这些,并不是劝退,也有做基础架构工作做的很厉害的,技术活,终究还是看你钻的有多深。如果你有做基础架构的想法,这些你至少得知道…

哎不对啊,为啥大家都知道,我好像知道的有点晚?我突然回想起面试拍拍贷时,hr问我想做基础架构还是业务开发,我说基础架构,hr抑制不住自己的笑容,同时一脸惊讶"啊!我以为你会选业务开发",所以hr小姐姐,你这个笑容是觉得我傻咯?

二面面试官是个女boss(也就是我们部门的总经理),一般来说最后一轮技术面挂人的概率不高,因为大boss很少问细节问题,大多是看看眼缘走个过场,但是博主险些就跪在这一面,虽然都是些项目问题,但问的太细了!其中一个问题想了好一会才理顺,要是没想通,怕是就跪了,技术boss中女的不多,但能上去的一般都很强,如果你也遇到了女boss,一定要谨慎呀骚年

之后问到了项目中遇到过什么难题,怎么发现的,怎么解决的:这题是高频题!(文末总结处会再作下说明),回答好了可以加不少分,通过了解面试者解决难题的思路,比起一般的面试题,确实可以更清晰的判断面试者的能力,博主遇到过几次问题,并且都解决的还不错,所以这道题算是我的加分项了

技术题到这里就说完了,最后补充几点注意事项:

1.项目问题我基本都略过了,但不代表不重要,相反项目非常重要,基本上前面的面试官上来都会先问项目,再问技术,后面的boss面,更偏向于问项目,所以大家一定要对自己做的东西知根知底,不然很可能在某个细节上就跪了;比如…你的项目是做什么的,你的职责是什么,项目架构图怎样的,集群规模怎样,tps多少,这个点这样设计的理由是什么,有什么好处,为什么选用这个技术,而不是那个技术,你觉得项目中还有哪些地方需要优化的

2.做项目时遇到过什么难题,怎么解决的?这是个**高频题!**boss面都喜欢问这个问题(博主遇到过不下四次),你有遇到过那是最好,没有最好也造一个…

3.简历里写的每一个技术栈,请你慎重,最起码基本原理你得懂,才好写到简历上,面试官都会按简历上的技术栈来问,如果你只是用过,建议不要写上去;换句话说,你要想多写点技术栈,建议把原理搞搞清楚,能选几个去深入那是最好了

4.如果你对技术追求比较高,面试过程中你同样要注意考察面试官的技术水平,如果技术问题寥寥无几或者占比很低,说明公司对技术这块并不太重视,技术实力应该也是平平,选择时就要谨慎(如果你打算去扛把子,请忽略…);有些面试官虽然一直在问技术问题,但是你会发现每道题问完没有任何深入,就开始问下一题了,这种情况,要嘛是你答得不对路,要嘛是面试官在水!

5.最好有一个深入了解的技术栈,并在简历里突出一下,在面试过程中尽量引导面试官问你这方面的问题,深入的了解可以让你说的更透彻,关键是可以说很长时间…可以大大提高面试成功率;楼主对netty了解的比较多,业余时间还写了个rpc,好几场面试都靠netty和rpc耗了不少时间,所以觉得在深入一个技术栈方面花时间,性价比还是蛮高的

6.为啥离职,**高频题!boss和hr面都喜欢问:**不要说得过于简单,比如你答是为了更好的技术平台、为了更好的待遇,虽然跳槽大多是这两个原因,但不加修饰的说出来会显得你不太有人情味,那么多面试者,能到这个环节的也有不少,多准备点内容,让人觉得你是经过认真考虑、想好了才要离职的,当然就更偏向于你啦;比如"我对自己的要求一直挺高,这几年表现得也还不错,领导和同事都很认可,但是行业/公司这两年效益不太好,工资涨幅不太如意,加上我平时业余时间也积累的蛮多,所以希望找一个大点的平台,更好的发挥自己的实力…",你可以结合自己的实际情况,多准备点措辞

7.职业规划,高频题!boss和hr面都喜欢问:和上面这题类似,不要说得过于简单,我再举个例子,“我工作了X年了,这些年大大小小的项目都做过,团队带过,最近也一直在做架构设计,未来如果可以继续做架构设计、或者有机会做上团队leader,我觉得都符合我的预期”

8.兴趣爱好里如果写了爱看书,有些领导或者hr会问你最近都在看些什么书,别露馅了

9.你觉得你有哪些优点:要注意的是,一般这个问题问完会接着让你举个例子说明下为啥具备这个优点,所以你在准备时,不要想当然,一个优点要对应一个案例,有理有据才能让人信服…

10.你觉得你有哪些缺点:这个答不好就是送命题了,比如你说"我觉得我有点内向,不善于沟通"

别真的说自己的缺点就好…

11.多找找内推渠道!比你自己乱投机会大得多,前面已经说了,各位读者自己去找找吧…

另外,因为已经加过上面一些公司的hr,如果你感兴趣,并且你的base也在上海,可以私信我,咱们试试内推…

暂时就写这么多了,祝各位好运…

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

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

2020java面试总结 的相关文章

  • 阿里巴巴校园招聘2019面试总结

    写在前面 面的岗位是c 43 43 开发 xff0c 二面跪了 xff0c 但依然想些出来分享一下 博主4月份开始着手找实习 xff0c 期间面过两次阿里都挂在第一面 xff0c 7月份至今在科大讯飞实习 xff0c 这期间内推阿里 xff
  • Google面试总结

    分享 Google面试总结 来源 xff1a 王冠中的日志 终于把Google的面试给搞完了 xff0c 感觉可以算是Tech Interview的顶峰了 这里主要写一下大概流程和内容 xff0c 给大家以后interview一个参考 G的
  • c/c++: 面试总结+查漏补缺(一)

    目录 1 C 43 43 中的类型限定符 2 存储类 xff1a static extern mutable thread local static 存储类 实例 extern 存储类 实例 实例 mutable 存储类 thread lo
  • C 中strcpy和memcpy的区别

    参考博客 https blog csdn net zcyzsy article details 53190691 https www cnblogs com metootxy p 3185000 html 一 以下是具体使用memcpy这个
  • SpringBoot面试题(持续整理中……)

    Spring Boot 是微服务中最好的 Java 框架 为了更好的理解与使用SpringBoot 同时 为了记录平时的点点滴滴 便于日后的面试 1 什么是SpringBoot 用来简化Spring应用的初始搭建以及开发过程 使用特定的方式
  • [ 人力资源面试篇 ] HR 面试题分析详解大集合,看完直怼面试官(一)

    博主介绍 博主介绍 大家好 我是 PowerShell 很高兴认识大家 主攻领域 渗透领域 数据通信 通讯安全 web安全 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末有彩蛋 作者水平有限 欢
  • MySQL主从同步原理

    主从复制 是用来建立一个和主数据库完全一样的数据库环境 称为从数据库 主数据库一般是准实时的业务数据库 原理 数据库有个bin log二进制文件 记录了所有sql语句 我们的目标就是把主数据库的bin log文件的sql语句复制过来 让其在
  • Vue组件常用的六种通信方式

    Vue js 组件实例的作用域是相互独立的 不同组件之间的数据不能互相访问 组件有父级组件 子级组件 兄弟组件 如何选择组件之间的通信方式 针对常用的 props emit on vuex parent children attrs lis
  • C/C++中的头文件加上头文件中的ifndef/define/endif有什么作用?

    参考博客 https blog csdn net summer00072 article details 80883514 主要的作用就是防止头文件重复包含了 这个作用在Qt中是已经给你做好了 qt新建一个文件的时候就会直接给你建立完毕
  • Spring bean的生命周期

    对于普通的Java对象 当new的时候创建对象 当它没有任何引用的时候被垃圾回收机制回收 而由Spring IoC容器托管的对象 它们的生命周期完全由容器控制 bean的声明 bean的声明有好几种 如上图 上图声明的一些bean信息可以通
  • JVM内存泄漏和内存溢出的原因

    文章目录 1 概念 2 分析内存溢出可能出现的地方 Java栈 Metaspace 堆 2 分析内存泄漏的原因 1 静态集合类 容器使用时引起的内存泄漏 2 各种连接时 未正确使用close 方法导致的内存泄漏 3 外部模块的引用 4 单例
  • Java是值传递还是引用传递?区别是什么?

    文章目录 值传递 引用传递 两者区别 Java到底是值传递还是引用传递 在Java中参数的传递主要有两种 值传递和 引用传递 值传递 实参传递给形参的是值 形参和实参在内存上是两个独立的变量 对形参做任何修改不会影响实参 也就是说 在方法调
  • 面试总结(1)---7.28

    Ajax关于readyState 状态值 和status 状态码 的研究 var getXmlHttpRequest function try 主流浏览器提供了XMLHttpRequest对象 return new XMLHttpReque
  • 我的春招实习+秋招总结【前端开发】

    双非本科 通信工程 算是转到IT行业这边的了 从大二暑期正式开始学习前端 想想已经一年的时间了 期间经历了很多 从迷惘到清晰 从艰难自学到找到实习 从备战秋招到找到工作 能经历的我都经历过了 来说说那些 前端工作者 的艰辛与欢乐 开始自学前
  • 【面试系列】JDK动态代理和CGLIB静态代理

    文章目录 前言 JDK动态代理代码实例 Cglib 代理代码实例 两者优缺点 前言 是否在面试过程中经常被问到Spring的代理的问题 比如说几种代理方式 两种代理方式的区别 或者问为什么JDK动态代理只能代理接口 如果你能回答出来JDK动
  • OOM(内存溢出)造成原因及解决方案

    一 概念 内存溢出 Out Of Memory 简称OOM 是指应用系统中存在无法回收的内存或使用的内存过多 最终使得程序运行要用到的内存大于能提供的最大内存 二 造成原因 2 1 内存泄漏 由于长期保持某些资源的引用 垃圾回收器无法回收它
  • 阿里巴巴面试总结:测试工程师

    阿里巴巴的面试是网上预约的时间 武汉一共有两天 五号和六号 原先是担心自己准备的不够充分 就把时间往后面移 最后定的是六号的下午四点半到六点的场 基本也就是武汉的最后一场 后来才发现 武汉可以说的上是全国比较晚面试的了 而今年马云又放出了风
  • 面试总结(六):搜索索引

    问题导读 1 如何理解用户输入查询语句 2 如何根据得到的文档和查询语句的相关性 对结果进行排序 3 如何计算权重 Term weight 过程 4 如何判断Term之间的关系从而得到文档相关性 搜索索引到这里似乎我们可以宣布 我们找到想要
  • Java无法通过形参设置为null改变实参

    文章目录 问题描述 问题例子 问题分析 问题描述 在实际业务开发过程中 我们会把实参传递给形参 在方法体内对引用对象进行构建或者修改 从而改变实参 因为对形参对象属性修改时 实参对象也会随着改变 详情请看 Java是值传递还是引用传递 区别
  • 面试总结(七):大数据与高并发-1

    问题导读 1 秒杀系统的架构设计是怎样的 2 为什么要使用NOSQL NOT ONLY SQL 3 传统RDBMS和NOSQL的区别是什么 大数据与高并发一 秒杀架构设计业务介绍什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢

随机推荐

  • 运维必学的监控系统——Prometheus,大牛免费直播带你入门~

    关注 实验楼 xff0c 每天分享一个项目教程 实验1小时 明晚开启 xff0c 腾讯大牛天火老师带你入门Promentheus xff08 普罗米修斯 xff09 这一当下超火的监控系统 提到监控系统 xff0c 人们往往会想到Zabbi
  • VINS-Mono代码阅读笔记(十一):进入pose_graph节点代码分析

    本篇笔记紧接着上一篇VINS Mono代码阅读笔记 xff08 十 xff09 xff1a vins estimator中的非线性优化 xff0c 来接着学习VINS Mono系统中重定位和全局优化部部分的代码 这部分代码在pose gra
  • ROS中插件plugin的简单使用方法

    插件 xff0c 如同其名字一样 xff0c 第一次接触的时候让我想到了U盘或者USB线这类东西 xff0c 它们和电脑没有关系 xff0c 但是插入 xff08 挂载 xff09 电脑USB口后却可以正常使用 xff0c 仿佛扩展了电脑的
  • ROS中的roslaunch命令和launch文件(ROS入门学习笔记四)

    ROS中的基本对象和概念学习笔记 ROS入门学习笔记一 ROS中创建工作区和包 ROS入门学习笔记二 ROS功能包中CMakeLists txt的说明 ROS入门学习笔记三 1 roslaunch命令 我们知道 xff0c rosrun命令
  • 嵌入式软件面试题整理

    基础试题 1 用预处理指令 define 声明一个常数 xff0c 用以表明1年中有多少秒 xff08 忽略闰年问 define SECONDS PER YEAR 60 60 24 365 UL 说明 xff1a define 语法的基本知
  • 硬件在环仿真(HiL)测试介绍

    一 HiL是什么 xff1f 硬件在环仿真 xff08 Hardware in the Loop xff0c 简称HIL xff09 是真 的控制器连接假 的被控对象 xff0c 以一种高效低成本的方式对控制器进行全面测试 它是一种用于复杂
  • Docker Dockerfile详解

    dockerfike快速创建自定义的Docker镜像 一 目录 1 docker典型结构 2 指令介绍 3 创建docker镜像 二 结构 DockerFile分为四部分组成 xff1a 基础镜像信 维护者信息 镜像操作指令和容器启动时执行
  • 树莓派3B+(Raspberry Pi 3 Model B+)安装Ubuntu MATE 18.04及简单配置

    树莓派3B 43 安装Ubuntu MATE 18 04及简单配置 安装Ubuntu18 04 MATE下载Ubuntu 18 04 MATE准备Raspberry Pi Imager镜像烧录工具开机启动 简单配置设置root密码更新列表配
  • OpenCV之getOptimalNewCameraMatrix

    去畸变后的图像四周会出现黑色区域 xff0c 如果畸变较大 xff0c 如鱼眼镜头 xff0c 四周黑色区域将会更大 opencv中给我们提供了一个函数getOptimalNewCameraMatrix xff0c 用于去除畸变矫正后图像四
  • 【深度学习小常识】什么是mAP?

    目录 一 mAP相关概念 1 正例与负例 2 P xff08 精确率 xff09 3 R xff08 召回率 xff09 4 ACC xff08 准确率 xff09 5 AP xff08 平均精确度 xff09 6 示例 二 mAP 1 m
  • STM32CubeMX 下载和安装 详细教程

    HAL库 STM32CubeMX开发 STM32F407 目录 STM32CubeMX安装包 Win 6 6 1 下载链接 STM32CubeMX 下载 步骤1 xff1a 点击官网链接下载 官网下载地址 xff1a https www s
  • Keil5----跳转定义和查找功能

    一 Keil5 跳转定义 跳转定义 鼠标左键点击要查找的变量 方法1 xff1a 点击鼠标右键 xff0c 功能栏中有跳转定义的选项 方法2 xff1a 按快捷键 F12 具体操作如下图所示 xff1a 跳转结果 二 Keil5 查找功能
  • 使用WIFI模块AT指令进行MQTT协议通信

    劢领系列模组 xff0c 经过1年多的演化后 xff0c 已存在多套标准的固件程序 如果用户需要使用MQTT方式进行通信 xff0c 则需要选择标准AT指令 43 MQTT的版本 此版本不仅可以支持标准AT指令的SOCKET通信 xff0c
  • ActiveMQ配置wss

    最近把前端页面由原来的http升级为了https xff0c 发现之前ActiveMQ提供的ws不能强求了 xff0c https服务下要求升级到wss 全网搜索了下 xff0c 没有找到一个靠谱的文档 一 证书准备 使用wss连接服务必须
  • stm32使用HAL库快速编写智能寻迹避障小车(附代码)

    最近学校安排了一节用stm32编写寻迹避障小车的课 xff0c 但无奈学校老师教的方法让作者觉得无法理解 xff0c 但课程答辩时间快到了 xff0c 组内小组成员又做的磕磕绊绊 xff0c 于是身为组长的我就决定尝试一下用刚学的cubem
  • [hal库]使用 CubeMX 快速生成 FreeRTOS 系统并实现多任务处理

    由于项目需求 xff0c 需要使用FREERTOS搭载轻量系统 xff0c 因此写此博客给大家提供一个快速搭建RTOS系统的方法 xff0c 通过cubemx快速生成 以下内容包括 xff1a FreeRTOS 简介 程序框图所需要的元器件
  • Windows C/C++ CLion 开发环境搭建

    博文目录 文章目录 IDE CLion安装设置MinGW 插件测试 特殊配置 使用 CLion 开发 C 43 43 CUDA 应用注意不要走如下弯路 IDE CLion 安装 官网 官方全版本下载 CLion 2021 2 3 exe 或
  • git常见报错解决办法,fatal: the remote end hung up unexpectedly

    问题一 xff1a 上传GIT项目报fatal the remote end hung up unexpectedly错误 上传项目报fatal the remote end hung up unexpectedly的错误 xff0c 应该
  • AtCoder从小白到大神的进阶攻略

    摘自https www cnblogs com LHYLHY p 11572011 html 在此对作者表示感谢 AtCoder从小白到大神的进阶攻略 前言 现在全球最大的编程比赛记分网站非CodeForces和AtCoder莫属了 xff
  • 2020java面试总结

    博主背景 xff1a 92年生 xff0c 渣本毕业 xff0c java岗 xff0c 经验接近6年 xff0c base上海 本文宗旨 xff1a 本文旨在将博主最近的面试经历分享给大家 xff0c 并作些总结 xff0c 尽量为在准备