当前位置: 首页 > 后端技术 > Java

工作 10 年被裁之后再战高级 Java 开发岗,投简历100 面试 20 场 半个月时间终上岸 都不知道我怎么过来的

时间:2023-04-02 01:32:48 Java

工作10年后,我被裁员,然后争取高级Java开发职位。半个月投了100份简历,20次面试。我不知道我是怎么到这里的。我不知道我是怎么到这里的。各个公司的面试流程和面试问题,自己记录下来,也供大家参考。我是一个有10年工作经验的Java开发人员,所以面试的是高级Java开发人员。简历投递平台只使用Boss直招。由于生鲜电商裁员,我也是受害者之一,我所在的公司是*cai。2021年9月8日开始投简历,2021年9月23日Boss简历截止。通过数据沟通:200+,面试:20,投简历100+因复试原因,最多面试6次day(超级赶,本来约了3家,结果来了3家复试,都要求面试最好。给他们看Boss的预约信息,都要求一个小时空白)的面试职位有10年Java经验,所以应聘高级Java工程师职位。因为住在顺义,所以面试的一般都是望京周边的公司。为了避免面试时出现不必要的麻烦,这里把公司抹掉了。老板面试截图为了避免不必要的麻烦,这里把公司抹掉了,只贴出部分截图。老板约了16家公司,一共面试了20家公司。面试过程本来打算每个人都写一下面试过程的,但是感觉有点像流水账,没什么意思。下面举几个典型的例子。*Delivery:全程10多分钟,面试官全程无表情。问的问题:Springboot自动组装流程、Springboot循环依赖、Springboot自定义启动、hashmap。我遇到过很多这样的情况,我问的问题都回答了,但是面试官没有回应,我就继续问他的问题。一般遇到这种情况,不要后悔,不要生气。可能是刚遇到什么生气的事,或者性格就是这样。。。(虽然这样安慰自己,当时也很生气哈哈)*水:面试1小时,问的问题:JVM/ArrayList/JMMmemorybarrier,问的比较深,比如JMM内存屏障是怎么设计的,为什么要做...基本就是问到不懂为止。这种情况也很常见。一些大公司会问这个问题。生气之余,还是仔细看看源码吧,HR说的很含糊,就说前两轮都不错,要不你来公司看看吧……估计她应该跟很多人说过这句话。估计面试周期会很长,而且他们面试基数比较大,可能100个人里面找2个人哈哈**pay:面试过程明显有问题,应该也是群面.去HR的时候跟我聊了半个多小时。一般都是问工作经历,家庭情况,职业规划等等,看来是在拖时间。过了一会儿,业务总监被叫来查看工作履历。我没有面试我的技能。最后HR说我们业务总监说你没有支付经验,所以很抱歉。为什么不一开始问问有没有付款经验,免得我们浪费时间。也就是说,这些都是负面的,希望大家不要遇到这种公司。面试结果面试周期10天,面试了20家公司,offer了3家,reject了2家(直接没谈钱),又聊了一家。也就是说,有6个人在谈钱。可能一开始有点心慌,没有仔细筛选公司,就面试了几个没必要的。我通过了以下面试高频知识的低频面试和高频总结Java基础JVM:一般介绍都是从JVM的组成开始,然后分别介绍每一块,然后慢慢推导出垃圾回收方法,垃圾收集器,也可以派生。volatile之类的东西,也可以引导到自己需要掌握的地方。重点:栈帧/堆,垃圾收集方式,垃圾收集器比较G1---CMS。不安全类navicat为volatile。Collection类:一般会问HashMap或者arraylist,有的会比较arraylist和linklist。ConcurrentHashMap等一般回答初始化过程,组成,底层结构,算法,线程是否安全等等,这个一定要认真回答,得看源码,或者看B站的源码。解释的很仔细,给每个方法的名字,如果collection类挂了,那就爽了。。。重点:hashmap组成,搜索算法,展开算法,putget过程,红黑树二叉树B+树不同之处。经典问题:为什么要用红黑树而不是普通的二叉树。Lock:AQS实现,公平锁/非公平锁,synchronized和lock的区别,synchronized锁的演进过程一般都是从AQS开始的,这个和HashMap一样,一定要看源码,知道各个的名字和过程方法,和集合类一样重要。就算不问你,你也能把synchronized跟lock和LockSupport对比到底,看来JUC是熟练的。还有这三个CountDownLatch_CyclicBarrier_Semaphore,一般问的是使用场景,所以需要明确CAS:一般问的都是用volatile,我一般在上面的回答里带上,这个应用比较广泛,AQS,collections,等被广泛使用,直接说源码的时候,OKThreadLocal:还要看源码,也可以结合4大引用类型,堆内存泄漏,场景线程池的使用:it也依赖于源码,也可以结合4大引用类型,堆内存泄漏使用,以及使用场景的要点:7大参数,拒绝策略。答案思路、7大参数、拒绝策略介绍。描述线程池扩容场景。结合实际使用场景,说一下参数配置,一个耗CPU,一个耗IO,写这么多只要问题不大,JMM/JUC下可能有很多,所以我就不一一列举了。总结一下:Java基础是敲门砖,很多都要问源码,所以一定要非常熟悉。一般来说,这是开胃菜。回答完你就对下一步有信心了,面试官也不会嫌弃你,不然就算你下去我问了,面试官基本给你判了死刑。想想就知道有多尴尬了。。。当然工厂很多,所以就在这里问了,所以很重要。关于Spring相关的Spring问题很多,但是不多。总结一些高频的IOC/AOP/transactions:归为一类,问的比较多。一般都是从理论到源码,再补充一些实际使用和具体方法。重点:IOC的实现,即注册和托管...,AOP实现逻辑的区别,AOP的增强方法使用ASpect的顺序。事务是如何传播的。Spring初始化Bean的过程:以上问题大家可以一起回答。也可以单独问你。这取决于源代码、状态、方法名称和bean的范围,主要是Sigleton。Spring循环依赖还有很多设计模式也可以说:可以和上面的结合起来。重点:三张maps,bean状态,scop方法SpringBoot自动组装:Springboot好像是唯一可以问的问题,所以要看源码,具体的reflsh方法是要背的。一般来说,从注解看就是简单的那种。如果你还问,你必须从运行开始。看了好几遍,方法太多了,有的想不起来了。。。mySql数据库是必问的,这里就说说mysql吧。索引:一般这道题可以把所有关于mysql的题都串起来。先说innodb和myisam,再说聚簇索引/非聚簇索引,B+树,索引覆盖率,执行计划expline,重点:聚簇索引/非聚簇索引的区别。B+树结构怎么能不回表呢。查询优化,覆盖索引。执行计划的参数说明。查询优化过程。最后,查询优化还可以加分库分表,这里问题比较多。分库分表的方法如何读取更快,快速定位。加上实际场景很有说服力...经典问题:其他树为什么不用B+树。也会和hashmap的红黑树进行对比。取决于树的结构,所以数据结构很重要。看了B+树的结构就清楚了。我的理解是B+树的叶子节点像数组一样串在一起。进行范围查询时,不需要返回树,提高了效率。非聚集索引如何不回表:非聚集索引存储的是索引内容+ID,覆盖索引时不会回表。这就涉及到联合索引最左边的法系了……说了这么多,自己总结一下吧。太多了,可以继续往下说,这样回答问题,再展开,不然面试官下一个问题就要问了:这也是必问的,先说ACID,再用undolog...保证,那么隔离级别和出现的现象。然后说下隔离级别的底层,也就是mysql锁,表锁,行锁,间隙锁,再说MVCC的重点:这里的隔离级别比较绕,所以你有要仔细看,有实际应用场景,不然容易被问活。我这里一直卡在两个哈哈集群:主从复制,sharding,分库分表。这里我会问集??群建设。我一般回答分库分表相关的问题。我没有做过深入的运维。接下来就学习了……Redis缓存是必问的,总结了几种高频redis的数据类型:常用的5种,不常用的3种,再结合使用场景进行描述。缓存问题及解决方案:缓存雪崩、缓存击穿、缓存穿透。解决方案,多级缓存,Bloomfilter(黑白名单),以防故障阻塞。这是一个普遍的问题,你可以结合你的项目谈谈。一定不能挂了,不然就爽了。。。淘汰策略:介绍几种淘汰策略,然后说说LRU算法的实现(伪代码),看看LRU的算法,很多算法题都是手写LRU算法。持久化:RDB和AOF,使用场景,都先用AOF恢复集群:master-slave/sentry/sharding,keysentinels介绍重点:分布式锁:这是重点,大家可以在自己的项目场景话说回来,分布式肯定涉及到这个问题。结合下图的五个特性,从redisson到redlock,重点介绍以下五个特性以及watchdog的实现,以及集群下的容错。MQ队列在分布式中应用广泛,所以这个一定要问,即使不问,在说项目的时候也要提到MQ的应用场景类型:direct/topic/fanout单独应用场景谈分布式ones应用:先说队列的使用场景,再说高可用,如何在发送端和接收端保证消息的可靠性。延迟队列:这个已经问过很多次了。两者之一是redis+Springboot的实现,一个是时间轮。这个是要好好看的重点,因为场景很多,发消息延迟多长时间,取消订单延迟多长时间,问几个MQ的区别或者模型怎么选。我回答得不是很好,因为我没有全部用过。.微服务架构微服务架构非常重要。一般我在介绍项目的时候介绍一下,然后比较几个框架。回答技巧:一般都是从微服务的主要组件开始说起,然后比较它们的区别。说到每一种技术,说说具体的用途。比如:sentienl,先讲主要功能,再结合项目是如何实现的,可以提一下SentinelResource的blockHandler,让面试官知道代码已经敲出来了。然后说一下配置限流是基于什么的,熔断和降级解决了哪些实际问题。分布式事务:这里先说一下分布式事务。因为在准备阿里巴巴的坐席,所以大致说一下分布式事务的几种方式,2pc3pc。然后我会重点介绍我的项目使用的座位。说到seate服务使用的表名,如何使用全局唯一ID和3大组件来实现,详细讲解了实现过程,前镜像后镜像。最后说说优缺点,一起过年吧……算法/设计模式/Vue/项目经验/未来发展就不说了。我擅长算法前端,没刷过算法。可以编写设计模式,通常直接在Spring中编写。如果面试官直接问,比如装修模式是什么。。。我就跪了,看来要看全了。至于项目经历/未来的发展,这些一定要准备好,因为即使你不问一方,后面面试的时候也会被问到,所以一定要做好充分的准备。还有一个问题,狼来了,兔子和猴子跑了,代码实现了哈哈总结作为一个Java开发工程师,要学的东西太多了,这里只是从几个方面总结一下java基础/Spring/Mysql/redis...把这几天被问到的高频面试题记录下来,自己记录下来,供大家参考…………………………………………………………………………………………………………………………………………………………基础数据库基础缓存中间件等,比如hashMap原理,数据库索引结构,redis类型,mq等。基础是敲门砖,至少你不能被这些问题抓到,如果不回答两个基础多了,我就送你一首爽歌。2.算法题:力扣,牛客,算法题还是要做的,不然会挂个二叉树图。。。我懒,这些题我都没做,遇到就挂了,而且下班一定要做1k题哈哈3。微相关:netfix、alibaba、dubbo+zk这三个微服务框架你一定知道或者做过。现在的技术,这些都是常用的,更别说没做过了。不,又是一首爽歌……4.高水平大学技术应用示例:高水平大学技术应用示例一定是常见场景(方便面试官提问),不要提一个技术用法只有业界知道的场景,那就没必要谈了。一定是你技术的最高体现,高并发/高可用/微服务/缓存/事务的综合体现。当然,如果你准备好了,你就会加分,如果你准备不充分,被质疑就会扣分。比如我在准备一个订单秒杀的场景:这个场景包含了上面提到的所有信息。有更多的事情要谈。5.2分钟内能清楚介绍的项目:这个主要是给二方或三方的高层次面试官,考查你的逻辑表达能力。一般不需要太复杂,但一定要合理的业务场景,尽量大,完整的业务场景,更不要说一个角落。使用简短的语言并说清楚。另外注意可以加自己的projectleader,这么彻底,加上负责人,面试官感觉你把控项目没问题哈哈总结:以上几点总结一下吧,虽然是我要总结一下,我也没做的那么好,我失败了很多次,所以大家肯定都比我好。大家有什么想法可以一起讨论。以下是我这些年面试准备的一些资料和面试题。有兴趣的可以看看:一线大厂面试真题解析2021一线名企面试真题。为了方便大家参考,我把上面的面试资料按技术栈整合成了一个文档,目录如下:近期有面试需求的朋友怎么看,点赞+书签,关注我加vx:gupao100