本人双非野鸡大学,春招0offer是真的菜(准备晚了),秋招最后拿到了绿盟的offer,今天签约基本结束了这六个月的校招。感谢学长一直以来的帮助。虽然不像各位大佬一堆offer但还是想纪录一下,校招真的累
双非今年是真的难,本身也菜再加上学历不行刚开始的时候是真的被整自闭了。
总结下这六个月面试以及心态吧。
春招:
投了几十家公司,做了很多笔试但是就只有阿里给了面试(二月才开始刷算法,笔试做的是真的菜)
阿里乡村技术部简历面面经:(面试官是真的Nice 对于我紧张到问题都听错的人十分耐心的重复了三遍问题)
1、面试官上来进行部门的介绍。然后让我挑一个项目说,然后说了快五十分钟的项目(再次感谢小哥的耐心)。
1.1、SQL注入问题。
1.2、SpringCloud负载均衡,我之前一直没说负载均衡调用接口方法,小哥哥十分纳闷我的接口如何实现,害我这个nt。
1.3、SpringCloud心跳机制。(我把原理说了死活没说心跳这两个字)。
1.4、如何使用线程做一个熔断器。
1.5、生产者模式中如果生产者变为两个怎么操作。
1.6、WebSocket是如何进行服务间的传输的。
大概就这些了接下来就是基础
2、TCP如何保证可靠传输。
3、TCP如何拥塞控制。(我吞吞吐吐说了个慢开始、拥塞避免死活想不起来)
4、Arrays.sort()底层。(我这个nt说了个冒泡,这个没了解过(双轴快排))
5、hashmap底层。
6、jdk中的线程池的类型(Executor框架里面的当时死活记不起这个框架里面有啥东西,就只说了个ThreadPoolExecutor和它的参数)。
7、线程池的BlockQueue的作用。(顺便说了线程池的执行过程,说反了两个,害真的nt)
8、快排和选择排序的复杂度和最坏情况。
开始项目,我可能没有把思路说清楚说了20分钟过后直接跳问题。
说几个重点的问题吧
泛型了解吗?(一番解释后)你知道泛型底层如何实现的吗?(哦豁 GG 底层指令之前看到过但是真没有透彻了解)
Syn和volatile的区别和运用场景,volatile i++,++i问题。(只记得是内存里面的)
Mysql事务实现的底层原理(用底层日志实现,但是不会 。GG)
Mysql如何查看你的sql执行情况。
Springboot的自动配置。(似乎是讲明白了)
致命问题:为啥你们用webSocket发消息而不用WebSocket接受消息呢。(从来没想过)
最后问了一下反馈:你才大三挺好的,下去多沉淀一下。(跟那些大佬差十几条街)
阿里乡村技术部二面:(突击面试)
日常刷算法的时候,突然来个杭州电话,接了就直接入正题,问了一个做的最low的项目,尴尬的讲完后,就一直问WebSocket的问题,最后以WebSocket在Tomcat的底层实现的问题结束(答不出来了),之后问了团队合作分工。然后评价一堆压力评语(就是说我还是刚刚进入第一层)。然后就结束了,经历了一面滑铁卢再来了这么一波已经对阿里不抱希望了。
阿里乡村技术部三面:
昨天下午打电话约的视频面试,约的十几分钟后😂,当时还在刷算法内心对于手撕代码慌的一批。
面试官人很nice,耐心的听完我说的东西后才问。
1、首先上来直接问我的优缺点,我直接自爆算法不行,Spring框架底层还没有理解的很透彻。
2、然后就是让我介绍我的几个项目。当时就拿了张设计图给他讲,但是后面系统迭代后加的一些功能没有加上去导致讲到后面只能用画笔在上面画,然后有些崩😂,怪自己没有准备好吧。
3、介绍完第一个项目后就问了一手我有没有自己设计的架构,我就说了另外一个项目的SpringCloud结合Zuul的一个系统,我都不知道这个算不算自己的架构😂。
4、技术问题主要一些项目里面用到的东西:
4.1、对负载均衡的理解。(说了半天,死活没记起分流,前几次面试都说了分流,这次没说面试官似乎发现我没get到点上😂)
4.2、redis数据库一致性的解决方案(我只说了更改时删除更新缓存)面试官又问如果更改频繁该怎么做(我当时都没想都说了直接不用redis缓存😂)又问还有没有解决方案,我想了一会似乎看到过但就是想不起来就放弃了。
5、之后就看我的博客,属实写的少,就写了几篇。之后解释我一般都自己记在笔记本上。
6、反问:
6.1我问了面试官大佬当年的java学习路线,收获很多,也对之后的java学习之路有了些清晰的认识。
6.2对我的评价:跟你开始的自我评价一样。
本次视频面试没有手撕代码,可能是开始就说了我算法菜就没让我整了,现在也是天天恶补算法😂这玩意玩心跳。
昨天下午打电话约的视频面试,约的十几分钟后😂,当时还在刷算法内心对于手撕代码慌的一批。
面试官人很nice,耐心的听完我说的东西后才问。
1、首先上来直接问我的优缺点,我直接自爆算法不行,Spring框架底层还没有理解的很透彻。
2、然后就是让我介绍我的几个项目。当时就拿了张设计图给他讲,但是后面系统迭代后加的一些功能没有加上去导致讲到后面只能用画笔在上面画,然后有些崩😂,怪自己没有准备好吧。
3、介绍完第一个项目后就问了一手我有没有自己设计的架构,我就说了另外一个项目的SpringCloud结合Zuul的一个系统,我都不知道这个算不算自己的架构😂。
4、技术问题主要一些项目里面用到的东西:
4.1、对负载均衡的理解。(说了半天,死活没记起分流,前几次面试都说了分流,这次没说面试官似乎发现我没get到点上😂)
4.2、redis数据库一致性的解决方案(我只说了更改时删除更新缓存)面试官又问如果更改频繁该怎么做(我当时都没想都说了直接不用redis缓存😂)又问还有没有解决方案,我想了一会似乎看到过但就是想不起来就放弃了。
5、之后就看我的博客,属实写的少,就写了几篇。之后解释我一般都自己记在笔记本上。
6、反问:
6.1我问了面试官大佬当年的java学习路线,收获很多,也对之后的java学习之路有了些清晰的认识。
6.2对我的评价:跟你开始的自我评价一样。
本次视频面试没有手撕代码,可能是开始就说了我算法菜就没让我整了,现在也是天天恶补算法😂这玩意玩心跳。
之后就是一个多月的等待,问了内推人说我面试都过了,等等HR,问的时候都已经五月了。最后问了一下评级内推人帮我查了是B+。OK,明白了是凉了。
我的春招就这么结束了。(阿里之后没有任何其他公司的面试,春招里面还是很感谢阿里给了我这么多宝贵的面试经验,在准备秋招中也给我了很多前车之鉴)
春招里面开始认识到算法的重要性,也认识到与名校对手竞争时候的知识储备的差距之大。在6月初决定结束春招后,陷入了纠结,是去当廉价劳动力混一下实习经验还是直接准备秋招。问了学长以及身边朋友的意见后(都是offer收割机),决定直接准备秋招。6月全部用在大学各种期末考试的复习上(每天一道算法)。7月正式开始复习,找了玩转算法的视频(c++的),每天跟着敲算法,然后完成老师给的相似的题。刷算法之余还在深入了解Spring底层(推荐《Spring揭秘》虽然版本有点老,但是框架的思想讲的很nice,豆瓣9.3的评分),MySQL的一些优化。在7月也开始投很多大厂的提前批。
秋招:(一样几十家就几家有面试)
百度提前批:(7月)
开始说项目,说了十分钟左右,面试官有点懵,后面问了几个问题然后就很尴尬的结束了这个环节,之后问基础,问题都不大都是Java八股文。之后手撕算法,这是第一次手撕算法手都在抖。算法题目:把一个字符串中的回文子串删除,然后保证删除了回文子串的字符串不含有回文子串(考虑回文连连看),这个时候写出了几个示例就急着交了,面试官说:“这题很难我主要想看你考虑全了没,感觉你做的有点急,这个题没打算让你全A。”
最后的评价就是其他的都还行,就算法拉跨。
这次面完后,每天刷的题又加了一波,有段时间一天到晚都在刷算法,连框架都没看。
小米(9月2~15日)是的我又度过了接近两个月的空窗期
一面:
1、项目难点。(主要说了Mybatis缓存一致性问题,以及WebSocket再分布式中的应用);
2、基础:HashMap的底层数据结构(jdk1.7 1.8);
3、线程池在项目中用的哪种(Fixed、Single、CachedThreadPool都说了一遍,然后最后说用的自定义ThreadPoolExecutor(),把里面的参数又说了一遍);
4、一个接口调用很慢,如何进行排查(漏了日志的方法);
5、AOP实现原理;
6、Cglib与JDK的动态规划有何不同。
6、数据库事务ACID以及底层实现;(隔离性的四个点差点没给卡出来)
8、消息队列在并发中的作用;
9、项目中SpringCloud所用到的组件;
10、如何预防SQL注入问题;
11、一道SQL语句的题,一张学生表,有name,grade,age;根据成绩的降序、年龄的升序进行查询,本来要写出来的,但是还是因为没网。。。。 说了思路,说用子查询但好像没有对上面试官的胃口。
12、Spring拦截器和过滤器(知识盲区,平常都是用Filter,就很尴尬)。更新:整理了一下这个盲区思维导图: https://www.processon.com/view/5f52d95263768959e2d54dbc#map
大概就记得到这些,因为临时改面试方式,没录音血亏。祈祷二面。
虽然断网属实没想到,但是没做好备用方案属实有些欠缺。面试官真的很好,理解我断网的情况,而且每个问题都有反馈就很舒服,感激不尽。
二面:
数据库如何优化(索引,小表驱动大表)
索引失效问题
Synchronized关键字的作用底层实现
moniter对象的底层实现(就知道底层是C写的,之后的就不会了 😂)
之后就是写题
1、单例模式:DCL(开始记不住单词,面试官给我写出来了,之后面试官提示了我几次,我还是没想到构造函数初始化的问题,害就我这猪脑子是没救了)面试官最后无奈看不下去了叫我回去再看看。
本来45分钟的时间但是只面了半个小时左右(可能是我太菜,面不下去了)。
总的来说,刷了两个月的算法在小米的面试上还是有一点点效果。😂
上了就是看着项目有SpringCloud就开始问负载均衡原理、Feign底层(无了)
之后是数据库事务、底层、事务隔离底层
然后是索引失效问题,(a,b,c)复合索引,a = 1,b < 10,c = 0为何c用不到索引,我说最左前缀问题,然后面试官又说从底层说一下失效原因。(知识盲区)最后在面试官的疯狂提醒下说出了是B+树节点的问题。
之后说用到RabbitMQ限流:能说说RabbitMQ的底层吗?(Boom)我就说了个信道然后就无了。
Mybatis ${} #{};举一个使用${}导致sql注入问题的例子。
SpringBoot自动装配原理,我在最后那部分突然卡壳,想了好久才记起来。
项目Sychronized的相率太低,能不能换一个(这个方法我们考虑了高并发的情况,进行了Sychronized同步 ),你们现在这个加了这个锁qps是1,我现在要把qps提上去还要保证效果怎么办。(一脸懵)各位大佬如果知道更好的方法,请大佬高抬贵手留个言给我指点指点。不胜感激。(后面和学长讨论,学长给出了降低锁粒度的方式来增加qps)
Spring事务底层实现。(然后出了一道题)
1
2
3
4
5
6
|
class A{
@Transaction
method b()
method c(this.b())
}
|
之后就是疯狂出题环节(发现自己太菜了)
1、void swap(Integer a, Integer b);问题,大家遇到过一看就知道,我当时脑子卡了,只想到反射两个对象来进行一个交换。
2、一个SQL语句,T(name,amount,subject),查询出所有subject的分数>80分的人名,我当时可能大脑CPU烧了,一直想怎么把>80分的科目选出来再去选人,结果最后面试反问的时候问面试官,面试官直接就说先查出低于80的人,然后把这些人排除了就行。我都差点想到存储过程上面去了(我真是猪脑子x2)。
最后面试官说我反应快,但是还是要把基础再深入一点。
这两场面试和之前阿里的差不多,都是在第五层级别的面试而我还是在第一层,还得更加深入的理解Java啊。
这两次面试,让我感到了秋招和春招的不一样,秋招更注重基础的运用而不是只是考八股文
虽然小米过了两轮技术面但在池子泡到了现在。
中电52所:
1、java特性:封装、继承、多态(对不起,我居然卡壳把多态记成抽象(面向对象的一个特性)愧对Java列祖列宗)。
封装:指将客观事务抽象成类,每个类对自身的数据和方法实行保护。类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
多态:指允许不同类的对象对同一消息作出响应。(我顺便讲了一下JVM方面的实现:静态分派和动态分派相关的)。
2、final的相关知识(不可继承、禁止重排序等)
3、ArrayList 和 LinkedList的区别
4、浅拷贝、深拷贝问题。
然后一些让我感到懵逼的问题:你是否了解52所(突击面试没有防备)、你是否有亲戚朋友在这边、又强调了一遍是不是我自己投的简历(持续懵逼中)。
反问:贵公司java的具体业务:物联网+。
在反问期间又被问了一下怎么学java的。
后面问评价:面试官说不方便说。
绿盟:(9.16去电子科大那现场沙龙)
去面试的全是电子科大和各种985、211硕士,双非就看到我和我的两个同学在名单末尾。
群面:小组里面两个西交硕士,一个才从360实习回来的电子科大大佬,讨论的时候我就只能看着讨论深度学习、AI算法。幸好他们Web不知名涉及不然我连话都插不上,最后我设计了系统结构然后上去和大佬们一起讲了一下。之后通知我等二面。
二面:排队等了很久,最后随便找了个面试官,面试官很和蔼,上来问我会的网安知识,我说了我会的(对不起我会的是真的少),之后就开始说项目,说了十几分钟,问了下容灾的处理,然后面试官说看得出来你大学没白过,行我这边你过了,等下一轮面试吧。之后又过了两轮类似HR面的面试终于在13号提交了三方,也算是结束了这么久以来的校招了。
·
在这六个月以来,深感学历不行要想有面试必须得笔试算法要好,笔试全A不一定有面试,但笔试没做好是绝对不会有面试。还有心态得好,说实话找工作心态真的容易崩,每天都在等各种消息但每天都安安静静。学历不行,可以把项目整好一点项目好了会一直问项目,基础八股文那些问的就少一点。还有八股文真的不能只背,面试官一问就知道你是背出来的还是真的是自己理解的,蘑菇街是真的把我给整清醒了。
最后祝各位大佬都变成offer收割机。
全部评论
(8) 回帖