java研发project师的初面是在上周三进行的,终于结果到了晚上才出,而没有通过的则是一结束网上就更新了状态。之后阿里通知这周三,也就是今天进行二面。
凑巧的是今早被舍友吵醒,中午那个困啊,但没时间睡了,导致下午晕乎乎的,在面试的等候区时还差点进错了厕所……说多了都是泪,还是赶紧切入正题吧。
面试是1对1的,旁边还放了个椅子,貌似是留给HR的,可是我看其它桌的也都是一个面试官,预计是HR人手不足吧。面试官挺年轻的,看着像是台湾人,给人感觉还不错。刚坐他就让我自我介绍,他边听边对着电脑敲一写代码,事实上这就是接下来的题目。我就大概说了下经历,他对着我的简历问了下之前的一些项目。由于提到了spring,所以就问了下AOP相关的知识,struts和spring的比較,还提了个问题:如今有个新模块要增加,怎样用spring的特性尽量不改动代码来完毕,接下来就是我的瞎扯……之后他让我画下自己觉得最值得说的项目,我表示之前那些东西都是自己一个人小打小闹,实在没啥好说的,直接进入java知识考核吧!
可一開始他就出了道头疼的题目,内网有人把论坛保密信息截图发到了外网,怎样依据图片来推断是谁发的。电脑没安装监控工具,仅仅能在网页上做文章,然后就是各种发散思维了,面试官也说了这题没有详细的答案。搞研发的自然要考算法,而他给我的题目就是写出求最大字段和的代码,幸好之前读了遍编程之美,代码不长,回顾了一下就写了出来,面试官看了下认为没有问题。接下来就是JVM相关的问题了,问的挺深的,字节码、proxy之类的,我表示不大懂-_-,然后把懂得都说了一遍(就是JVM的体系结构)。这时候刚开场面试官写的代码最终派上用场,他把笔记本转了过来,让我改动代码,这是一段JDBC的conn建立、使用和关闭的代码,我仅仅指出了finally中连接关闭前须要确认非空,然后他说close时也会抛出异常,事实上应该改再写一个try-catch来close才对。唉,太久不搞javaweb真是生疏了。后来面试官又问了我前端是否有研究,我表示对JS比較熟悉,前几天还在看JS跨域的问题,于是又是我balabala讲了跨域的几种方式。
最后面试官给了我抛了个炸弹,我感觉这题要能答出来今天就是有戏的节奏。这是一个数据库连接池的问题,给出了连接池的接口,让你实现它而且可以显示出哪些程序猿get了conn但没有close它,须要可以显示出错位置,给出思路就可以。我一下就蒙啦,想了半天就想出了须要编程时提供參数来实现,面试官告诉须要是无參的,并提示平时java程序执行时出错为什么能打印出出错代码行?可惜我太笨,还是想不出来,仅仅能伤心的说不知道了。
尽管没答出来,面试官也还是笑呵呵的,但我心里认为这差点儿相同是跪了吧。之间大概是面了40多分钟,面试官认为差点儿相同了,让我先去外头候着,我仅仅能满心悲伤地道谢离场了……在外头等了一会儿后,工作人员告诉我面试完毕了,详细消息会在一周内通知。回去的路上我看了下网上的状态变成了面试已完毕,看来没有被当场刷掉,真是万幸。详细结果还得等几天才干知道吧。PS:终面通过,部门是支付宝小微,因为自身原因不能去杭州总部,仅仅能就近在北京分部实习了。2014.5.7
这算是读研后的第一次面试,感觉自己知识领域实在是太窄,尽管都能扯几句,可是都不深入。以后还是要多花些时间来编程,特别是一些底层的东西须要好好研究一番。这就是这次的面经,仅供各位同学參考~
P.S.:一面考点:linux经常使用命令,文本内部搜索;设计模式原则,有哪些模式,写单例的代码;SSH架构,spring的IOC\AOP;oracle SQL优化;知道除了tomcat外的中间件;知道除了除了hibernate外的持久层框架;hashmap和hashtable差别,ConcurrentHashMap原理;怎样防止表单本地提交;设计数据库连接池须要考虑哪些;HTTP报文头有哪些字段,状态200/503的意思;java内部类作用;mysql机制