2019杭州java开发工程师面试分享

背景:18年双非本科毕业生,17年10月实习,19年7月底从武汉离职,目前杭州求职

2019.10.14 面试总结
早上9点半投的简历,上午11点半沟通发送简历预约下午3点面试

上看准网查找该公司的薪资、业务范围、面经等信息得知:
传统软件公司 100人左右规模 政府项目 JAVA均工资5600元,对JD上7~10K有出入,
大概只能给到6K,抱着对前半个月复习成果检验的心态去面试
根据面经得知信息,该公司面试难度为较简单,容易问到的有SQL查询、Struts启动
流程、equals、finally等java基础,遂总结一下Struts2的启动流程为7点,突击背
诵了一下(其实后面并没有问到)在去面试的路上又在公众号上复习了一下java基础

2点半提前到公司,随便填了一个表,只填了5 6项,对方不满,补充了身份证、期望
薪资跟婚姻状况,仍不满,又补充了籍贯户籍地和上家薪资(乱填,多填了2K)
笔试题10道选择 6道简答,都是基础问题,有几题知识点记得模糊答的不太好,简答
只有三题关于技术,剩下三题都是乱七八糟的问题,做了50分钟,从2点40做到3点半
,等了半小时开始面试

面试:4点05分开始,4点55结束,总共50分钟 面试官很年轻的,看起来27 28左右,
带我上四楼(笔试在三楼)我在路上就问了下四楼也是你们公司的吗?他说是的说3
楼是他们的其他部门和一些人力管理部门,研发部门都在4楼,然后带到了面试小房
间,坐下来就问湖北工业大学是211吗?我说不是211 是一本 他又问是不是一本里面
211以下最上层的,我说14年升上一本来的,他点了点头开始正式面试

问:自我介绍一下吧
答:花了一分钟左右说了个人基本信息和上家公司任职时间以及来杭州的目的

问:离开上家的原因
答:寻找更大的发展机会,希望找到一家重视技术研发的公司

问:介绍一下上家做过最有特点的项目,解决了什么技术问题
答:介绍了一个之前负责的项目,本身不是我搭建的,后来负责期间代码逻辑基本吃
透了,便夸大是自己搭建,说了一个视频上传压缩下载的需求功能,描述一下当时的
实现过程和遇到的JDK版本BUG,以及后面的解决方案(让客户更换视频名称为英文)

问:简单说一说maven是干什么的
答:maven是个包管理工具,建立一个maven仓库,将编辑器上的maven路径配置到本
地(问:本地?答错,实为maven服务器,此处坑爹,上家maven服务器那个网关经常
跟平时使用的网络不在一个网关上面,导致一直连不上,就让同事在本地搭了一个仓
库,一直连他的仓库)maven的配置仓库位置,需要使用jar包的时候就在pom里面进
行配置,项目里面的所有jar包都从服务器上下载,对方:好了好了问下你之前有没
有做过maven模块?答:maven模块你指的是?对方:就是一个单独的maven模块 我:
(挠了挠头)不知道,应该没有用过 对方:就是这个模块只对所有的jar包进行管理
,不做其他用途,没有做过类似的吗?答:(想了想)好像真的没有,之前的项目都
是maven整合到项目里面

问:有没有用过mapper,说说是干什么的?(刚问完他来了个电话,听了前半段是说
下面一个项目挂了要他紧急去修复,然后让我等一等他出去找了个人说了半天怎么搞
让他下去弄,大概过了五分钟继续回来面试)
答:mapper当时用的是MyBatis的逆向工程,通过数据库表利用配置文件来反向生成
类与表的对应实例类,mapper文件里面自动生成了一些基本的CRUD,后面业务拓展就
主要修改这个类(他点了点头)

问:SSM有用过吧,有没有用过mapping(当时没听清,我摇了摇头,他继续补充)就
是写在配置文件里面用来做权限拦截的
答:(心想这个肯定是问到了filter)SSM项目是17年做的,后面并未做拓展,没有
涉及到这个(其实是做过了,当时写在配置文件里的验证用户账号,当时那个小模块
就是我一个人在做测试,只弄了一个sa账号,直接写死了,后面提供给客户也就给了
她们这个账号,所以没什么印象,当时面试的时候就没答上来)他说没关系,然后翻
了翻我的简历,看到有写到分析订单状态、报表导出便

问:看你也有做过订单分析,报表导出这些功能,能说说你的数据是怎么处理的吗?
答:从终端获取到数据后,后台会根据车辆的轨迹来按照开发文档上定义的状态计算
车辆的行为,比如异常停车、到达卸货、订单完成等生成一个json,调用service方
法入库,然后取数据生成Excel表格,提供给前台下载(简单介绍了一下业务逻辑,
结果一说说多了脑子就乱了忘了题目,被他喊停,说我的项目业务方面能说的提示从
数据计算方面作答)

问:这个表格是从数据库中的数据生成的吗?有没有数据清洗、处理计算之类的操作
答:有的,有一个专门的计算模块cmpt来计算,这个模块是写好的,我搭建项目的时
候只要提供jar包就行了(他若有所思,问了下一个,应该对我的回答不满意)

问:这个分析模块修改分析规则是怎么实现的?是改代码还是有个专门的管理工具
答:直接改后台代码,没有做管理工具

问:你也知道SSM只是有个基础的框架,在这个框架上还有没有用到其他的技术?比
如查询分页
答:有的,用过SpringMVC的pageHelper 他:嗯?我连改口是MyBatis的,然后还用
了maven ant svn这些

问:问下基础吧,说说ArrayList和LinkedList各自的优缺点
答:ArrayList底层实现就是数组,LinkedList是一个双向循环连表结构,ArrayList
在做查询快时间复杂度是O(1),插入、删除慢,LinkedList插入删除快,查询慢,时
间复杂度是O(n)

问:ArrayList为什么删除要慢一些?(他开始在手机上回微信了,估计刚刚那个bug
还没修复)
答:因为数组在删除元素的时候,下标要偏移

问:ArrayList查询是绝对比LinkedList快吗?(他开始笑了,我心里有点虚,这TM
挖坑来了)
答:不一定吧,如果查询的元素在第一个速度应该不一定LinkedList快吧,他说如果
这个集合长度特别短呢,如果元素位于集合的最尾端呢,是吧,这个时候就不一定了
吧,我连忙表示没考虑周全

问:说出五个常用的ajax的参数类型
答:url、method、data后面的想不起来了(思路卡壳了,一直在想着那一串的url路
径,data也是想了一会儿才想起来的)他给我补充,常用的还有type、success,我
说我想到了post和get但是忘了那个参数,他说就是type,method也有但是不常用

问:看你这上面写了Redis,问你Redis是单线程还是多线程的?
答:(有点不记得了,开始瞎掰反问了)你问的是单机模式还是集群模式?他:就是
Redis不是什么模式,就问你这个缓存机制(一看绕不过去,开始东扯西扯)Redis是
平时使用做缓存用的,存的时候用的是键值对来存的,应该是单线程的吧,他:你用
Redis的时候有没有碰到过并发的问题呢?答:一直是用的单机模式,没有遇到过并
发 他:Redis是单线程的啊,有时候要自信点 我连忙点头

问:你平时用的数据库是哪些?
答:主要是SQL Server和MySQL

又问:我靠,SQL Server还在用啊,用的什么版本?2002还是2005
答:2008和2012

他又翻了翻我的简历看了下笔试试卷,又看了下表就没打算继续问了,问我有什么问

我问:我看了贵司的业务是在做政府项目这一块,然后技术栈是在哪一块呢(其实我
在看准网上看到有人说了说jfinal了,我有点不死心,还是问了出来)
他答:我们用的主要是jfinal听说过吗,我:听说过没用过,很老的一个框架了 他
:这个框架不老,上上周才发布了新版本 我:额恩恩,就是外面使用这个框架的公
司不多 他:是的,这个框架非常轻量级,比springboot还小,都是一些小项目在用
,现在的项目都在用SSM、SpringBoot、SpringCloud这些了,jfanl的项目现在都是
技术部的在使用,但是如果你后面来的话jfinal肯定也要会的,毕竟项目都是交叉的
,不可能碰不到,我们这边研发部门都是在用SSM 我说好,

继续问:就是我来之前在BOSS上跟贵司的招聘专员沟通过,他说这个职位会有安排出
差,你们这个出差是什么形式的?频不频繁?
他答:这个出差不是经常出,出差的话最多就一个星期,出差每天都有补贴,但是我
招你进来是到研发部来的,我们部门一般不出差,就可能偶尔出差一天帮助技术支持
同事解决一些问题(他又看了一下手表,我觉得他可能刚刚那个bug有点急就没问了
)我说我没什么问题了,他说好开始收拾本子,然后停了下来又问了一下说我的期望
薪资是多少,我问了一下是否有住房补贴得到否定的回答后跟他报了个10K,他说达
不到,我们这种传统软件公司不像互联网公司开不了那么高,但是我们很稳定,传统
软件公司你应该也懂得,到不了那个数的,我点点头,心里也有底了

然后他就说面试就到这了,后面的话应该是跟人力那边谈了,具体的事宜一周内跟你
通知。跟对方表示感谢之后他给我开了门,出门他边锁门边告诉我从那个后面也可以
下去,我顺着他指的方向下楼梯离开了那栋楼。

面试总结:
笔试难度——简单,面试难度——较简单,面试体验——良好,自我评价——应该能
过,入职意愿——较低,总体评价——面试气氛很活跃,面试官较年轻不会咄咄逼人
,碰到不会的地方会给出提示,面试完感觉良好


心得体会及收获:
这次面试难度整体比较简单,没有暴露出太多的技术上的不足,除了框架部分没复习
到,其他的线程队列和缓存都没有问到,基础知识就问了一个还是比较偏向与应付面
试类型,没有问到太底层的数据接口,果然大厂喜欢问基础问底层,小厂喜欢问框架
问项目,后面几天的复习重点还是要放在多线程并发缓存队列这一块,然后做过的项
目也要准备下,问的好多东西本来做过了但是面试的时候说不上来,还是不够熟悉


 

你可能感兴趣的:(面试)