最近在找工作,各种面试应接不暇,今天的烽火科技的面试让我心情十分沉重,做个记录,也当做是个总结。
先说一下鄙人的基本情况,去年年底辞职,之后一直休息,过上了梦寐中的猪一样的生活,几个月下来,越发觉得这种“漫”节奏的生活十分无趣,所以决定还是继续找份工作。
鄙人从事Java开发7年,做的工作也是所谓的“全栈工程师”(小公司一般都是一个人扮演好几个人的角色,不是么?)。
头天晚上接到Hr的电话,安排第二天早上9点或者11点开始线上面试(具体时间呢得看情况),面试岗位为Java高级。
面试早上9点准时开始,进入线上会议室,里面有五六个人(此时我觉得情况不大对,我应该早点进会议室等着的,手动流汗…紧张也就由此开始了)。
会议由HR主持,一个技术负责面试技术问题,其他人一直没有发言(估计是我太菜,没能撑到其他人问我问题的环节吧…)。
面试过程中了,只有我一个人开着视频,其他人都是语音,这也搞得我很紧张(再次手动流汗…)。
先让我做个自我介绍,在大公司待了两年多,主要做前端,之后在创业公司待了差不多5年,一个人要演好几个角色,所以做的事多,可以说的也就多,balabala…自我介绍就完了。
~~ ~~
下面开始进入正文*(方括号中的内容为鄙人内心活动)*:
-
面试官:说说window的onload和jquery的ready之间的区别?
鄙人:【有点慌…这不是初级程序员的问题么???面试官的侧重点在哪儿???onload是window对象的一个属性,也就只能指定一次,ready相当于一个自执行函数,由jquery负责调用。面试高级Java问这个问题绝对不简单,但是我还是没能GET到面试官的侧重点,然而时间已经不允许我再思考下去了。】慌乱之中,我Balala胡扯一通,把浏览器原生对象都扯出来了(手动笑哭…)。【大概知道第一个问题被KO了】
-
面试官:说说jQuery点阿贾克斯和jQuery点get的区别?
鄙人:【再次慌…这不是初级程序员的问题么???这次面试官的侧重点在哪儿???这个问题好像没啥好说的呀,ajax功能完备,要啥有啥,而get就只能以GET的方式发送请求,使用方便,短小精悍,但这也太简单了,我想这里面一定还有更深层次的问题,但是,到底是什么了…上一个问题没GET到点,这个问题一定要好好把握,但时间已经不允许我多想了,知道啥就说啥吧,豁出去了】慌乱之中,只能简单的说了下ajax功能齐全,参数为对象,在对象里面可以指定请求方式,GET、POST等,还可以指定不同情况下的回调;而get只能以GET的方式请求,只有请求成功的回调。【我觉得这是初级程序员应该掌握的,但是更高级的回答我也想不到,越说心里越慌,干脆点到为止,不说了。(好吧,这个问题大概又被KO了)】
-
面试官:说说js如何修改元素属性?
鄙人:【慌了慌了,完全慌了,元素是啥?DOM元素?还是Object对象?】本着不懂就要问的精神,我弱弱地问了句:您所说的“元素”是什么?是对象么?
面试官:是的【这小子问题都听不懂,怕是这个问题又不会了】
鄙人:【慌了慌了,完全慌了,var person = {“name”: “xxx”, “age”: 18},形如这样的不就是对象么,修改属性不就是像这样么:person.age = 88;
但是这让我怎么说了?况且高级Java面试应该没这么简单吧!哦哦,对了,js虽然是解释型语言,但也提供了语法糖,可以像Java那样进行面向对象编程,其对象属性也支持get和set操作,OK,这次终于GET到面试官的侧重点了,自信满满,于是脱口而出】可以通过setter的方式修改属性值。
话未说完,面试官就打断了我,我隐隐感受到了面试官的不耐烦,【难道我GET到了错误的点???哦哦,对了,函数也是对象,函数的prototype可以修改函数属性,但这和我之前的回答完全是两个不相干的角度,面试官应该不会这样考我,但是想到了还是补充下,总比一问三不知强】于是我便补充了下prototype。面试官的语气已经带着强烈的失落感了。【难道我再次GET到了错误的点???手动流汗…事后仔细回想,面试官应该是想问如何修改DOM元素的属性,毕竟jquery用多了,很可能就不会用原生语法操作DOM元素了,但是用这个问题面试高级Java,似乎也不大对】
好了,前端相关的问题全军覆没。下面开始后端内容。
-
面试官:讲讲mybatis的一级缓存和二级缓存?
鄙人:【慌了,这个问题不会】对不起,这个问题不会。 -
面试官:讲讲spring自动配置原理?
鄙人:【面试八股文,背呗】,从@EnableAutoConfiguration一直背到spring.factories。【懂得人自然懂。】 -
面试官:说说你是如何优化SQL的?
鄙人:【隐隐感觉这个问题很扯淡,慢日志查询分析?Profile?Explain?… 经过前面几个问题的蹂躏,我已经无心去猜面试官的侧重点在哪儿了】先通过日志找到耗时较长的sql,然后分析并优化,一般我们会把长耗时sql改成存储过程。【哎…就这样吧,赶紧结束这场没啥意义的对话吧】面试官:那这样效率很低啊!
鄙人:嗯,对。【你说的都对,你不知道的是这个方法对于身兼数职的创业型公司开发来说是最简单高效的,但已无心争辩】 -
面试官:那还问你最后一个问题吧。【感觉面试官已经对我失去耐心了】
鄙人:好的面试官:现在有一张表,一张成员表,假如里面有id,姓名等,其中,有一部分学生的角色字段是000,也可以理解为角色编码,有一部分没有这个字段。现在要插入一部分数据,把没有这个字段的人员设置为001,sql语句是什么样的?
鄙人:【完全没听明白题目意思,这是在考察update set where?不对,高级Java的面试不会这么简单,难道是replace into?还是insert select?思考良久,还是没能GET到面试官的点,看来只能瞎撞了】批量插入,插入的值从select查询中来。【大概就这意思吧】
面试官:我知道有批量插入,但是我问的不是这个,就一张表,你告诉我这条sql语句是什么样的。
鄙人:【看来面试官已经很不耐烦了,但是实际应用中,也没谁会把角色编码直接存到人员表里面去啊,这都不满足那啥第几范式了,至少要有个人员角色关联表吧,我还在思考的时候,面试官已经结束了面试】…
此时HR跟我说:那就到这儿了啊!
我觉得一家十分具有影响力的大公司,最基本的待人接物的礼貌还是应该有的吧? 或许是我真的太菜,不值得别人多说半句话吧【最后一次手动笑哭】
然后大家陆续退出了腾讯会议。
至此,一场空前失败的面试结束了。
记录此次面试,只作为个人总结,是个人实际经历,并无半点指责或诋毁,希望还在找工作的小伙伴吸取我的教训,避免踩坑。



