来自一位工作两年的后端同学面试分享
从今年5月份就开始面试了,前前后后也有4个多月了吧,面试了几十家公司,其中有几十个人的小型创业公司,也有几百人的上市公司,踩了不少的坑,最后收到了宝能集团的offer,我也决定就去这家了。
看过很多别人的面试分享经验,这里我也做一些面试的分享吧。
前言
首先,提前要求自带简历的一般都不太靠谱,特别是小公司要求自带简历,一般都是hr不专业,不想提前把你的简历打印出来,或者说不想为了你浪费几张A4纸,所以这种公司可以直接pass了,除非你特别缺offer,生存都成困难了。
其次,可以提前问一下hr面试流程是什么样的,现在很多公司都取消笔试了。众所周知笔试没有人监督你,所以可以掏出手机(虽然我没做过,但是面试看见其他人这样做过),所以我觉得笔试作用其实没多少。
如果有公司是明确要先笔试,笔试通过再进行面试,而你面试的不是应届生岗位,就要小心了,先考虑一下那家公司过去面试距离远不远,提前去看准网看一下相关的评价,再考虑要不要去面试的事。我之前面过两家都是需要笔试的,笔试没通过是直接没有后面的面试的(有的面试题非常脑残,下面上图),来回也比较远,浪费了我一个上午的时间。
面试准备
面试的时候99.99%的公司都会让你做一下自我介绍和最近做的一个项目,所以自我介绍和项目要提前打好草稿,特别是不太会说话的。
自我介绍
我觉得简洁一点就行了,一般面试官都会趁着你自我介绍的时候看简历,也没认真听你做自我介绍。
举例
面试官你好,我叫凌霄,xx年毕业于xxx学院xxx专业。我对技术有浓厚的兴趣,专业知识面宽,技术也相对全面,责任心强,思路清晰,沟通能力好,熟悉JAVA体系,各种开发流程和主流架构模式,设计模式和UML,有较强的需求分析、架构设计、项目管理能力,并有丰富的实战经验;
出我在研发团队管理期间,尝试了多种方法去建立良性的团队氛围,并有效的改善了研发效率;
技术是为产品支撑的,所以我现在也在熟悉产品设计过程,希望可以结合公司发展战略,营销策略,跟着团队打造出一个好的产品。
项目介绍
这个是真的要提前准备好说辞,不然你面试的时候边想边说,说起来磕磕巴巴的,你给面试官的第一印象就不好了,至少说明你的表述能力不强。
介绍项目的话可以不用太紧张,面试官才拿到你的简历看多久,所以肯定是对你自己的项目是最熟悉的。
需要注意的地方就是不要只讲一些业务相关的,面试官不需要知道这些,他只关心你的技术能力是否足够,通过你的描述知道你使用了什么技术,再根据相关的技术进行提问。
举例
我在xx公司做的xx系统,客户主要是xx,项目的功能主要是提供代理雨伞,代理快递,代理订餐,图书借阅等服务。后台用的是主体架构是使用Spring Cloud,微服务模块划分为xxx,我主要负责其中xxx几个模块的开发, orm用的是mybatis,数据库是用的mysql,缓存是用的redis,前台用到了vue技术。共有xx个同事参与开发,整个项目持续了xx时间。
面试官会对他感兴趣的点进行提问。
项目中遇到的难题
让我想起小学时经常写的作文:最难忘的一件事。这可真是太艹了,没想到小学学的知识现在派上了用场。
项目中遇到的难题,解决了之后其实都不是什么难题了。我列几个点可以参考一下:
- 跨域
- 任务调度幂等性
- 使用mq遇到的问题
- 分布式系统中的事务问题
- 内存溢出问题
当然最后还是要自己的专业技能扎实,才能获取源源不断的offer。
面试经验
接下来分享一些这段时间的面试公司
腾云亿想
腾讯云全资子公司,其实就是腾讯云的外包公司
面试题
- 数据库有哪几种索引
- springboot原理,如何实现的自动装配
- springboot打包成jar之后,怎么做到不重新打包修改他的properties配置文件
- jvm调优做过吗,有哪些参数可以调,具体怎么调
第一次面试,尴尬的是我基本上没打上来,只回答上了springboot原理,居然还叫我去hr面,要把这个岗位确定下来,我拒绝了。
垒知科技研究院
上市公司,原来叫做建研集团,做建筑相关的工程。
面试题
- 你用过SpringBoot的哪些注解
- Spring的Bean默认是单例还是多例,我想改成多例的怎么办
- 项目中用到了rabbitmq,使用中遇到什么问题
- rabbitmq重复消费怎么解决,除了数据库里查记录还有其他什么方法
- 分布式锁怎么实现,redis实现方式死锁怎么解决
- mysql索引怎么实现的,btree索引有什么特点
- 现在有一个联合索引(A,B) 我有一个sql语句是:select xxx from xxx where A=xxx 会用到索引吗?select xxx from xxx whereB=xxx 会用到索引吗?为什么会是最左匹配原则
- ArrayList实现了哪些接口
- 代码优化怎么做的
- nginx怎么配置负载均衡
- 闭锁怎么用,什么原理
- 二分查找法,时间复杂度
第二天收到了复试邀请,还挺惊讶的。
复试先是做一套性格测试题,然后就是项目主管来面试我,问了一下毕业学校,为啥学校挺好还是科班出身,为啥毕业会进小公司。然后问了下我现在的职位级别,接下来就巴拉巴拉开始夸他们公司。
然后就是cto面试,也没问技术,就问了问家里的情况,未来职业规划,然后说他是从华为出来的,公司实行狼性文化,加班是经常的。
正题来了,他说待遇是不会高于我上家公司的,但是进他们公司未来的发展肯定会很好。我就有点不太舒服,就叹气嘛,然后他说我唉声叹息比较悲观,进公司会影响其他人,他需要的是一个时刻保持乐观的人,能给团队带来活力。
我整个人都傻了,(像华为一样狼性没问题,肉也给的够吃才行呀)
西南凯亚
中国民航的子公司,是一家国企。
先要提前一天做一套线上笔试题,不管有没有通过,第二天都是要去面试的。
主要是项目相关的,业务上的东西问得多
面试题
代码优化
mysql优化
jvm内存模型
spring cloud用过哪些组件 讲讲熔断机制
为什么离开上家公司
不是很难但是没有offer,心态崩了。
睿沿科技
做人脸识别相关的,和我上家公司做的产品差不多。
面试题
- Hashmap原理
- ConcurrentHashMap原理,为什么多线程条件下性能这么好
- 项目相关
- 代码优化
- mysql优化
- spring的aop怎么实现的
- 每天抓拍的数据量比较大,有做过分库分表吗
- Rabbitmq实现原理
后面两个没有回答好吧,所以没有后续了。
小海豚能源科技
这家应该是要找做全栈的吧,开头就问我好几个前端相关的,我直接懵了,理所当然的没有后续了
面试题
- 用过jquery哪些框架
- es6语法熟悉吗
- vue用过哪些组件
- spring用过哪些注解
- 使用@autowired注入的时候,如果这个接口有多个实现,怎么指定注入哪一个的实现
- eureka搭过集群吗
- mysql优化,什么时候不会用到索引
- 接受长期出差吗
开通金融
做互联网金融的,公司总部在北京,我面试的时候是在成都的新网银行公司,看这个模式应该就是驻场开发了,但是公司本身不是外包。
面试题
- springboot和spring的不同
- springboot特性,自动装配怎么实现的
- spring用到哪些组件,具体场景
- spring默认是单例还是多例,全局变量会有什么问题
- spring事务传播行为、隔离级别
- aop实现方式,jdk动态代理和cglib动态代理区别
- jdk lambda表达式几种使用方式,取最大和最小值,list转map,list中有重复的怎么办
- 线程池 有哪些参数,各个参数的意义
- ioc容器有什么优点
- jvm 堆栈,区别,线程共享还是线程私有的
- springcloud组件、用途,负载均衡的几种算法
- 分布式事务怎么做的
- mybatis一对多,多对多怎么做
- jpa和mybatis区别
- vmstat命令干嘛的
- redis查看内存占用命令
- mysql导入大量数据怎么优化
- mysql有一条数据死锁了,怎么排查问题,mysql表死锁,怎么排查
- nginx反向代理是什么,正向代理呢
这次面试回答得挺好的,hr也打了好几次电话说面试官对我挺有意向的,就是一顿操作猛如虎,一问工资0.9。而且我当时还是在职,要求我一周到岗,我就没去。
兰亭集势
做海外电商的公司,但是进去之后是做一些小系统的开发
面试题
- 看过开源框架源码吗,SpringBoot自动装配原理
- 写个冒泡,写个单例模式
- mybatis和jdbc怎么防止sql注入
- 单一职责原则是什么,里式替换原则是什么
- 3NF是什么
- 接口定义一个变量,这个变量的默认作用域
- 有没有自己搭建过微服务
- linux怎么看java进程,除了jps和top命令还有其他的吗
- 最近看什么书,我回答多线程并发相关的,他:没用,要在项目里用才有用
- 最近在学什么技术?docker,他:没用,很简单不需要学习
- 有个部门表,怎么设计他的字段,获取一个部门下的所有子部门,除了递归还有什么方法?加个code字段,通过部门前缀like查询
京东物流(自带简历)
朋友内推的,听他说是稳了,去面就能过,结果还是翻车了。
面试题
- java特点描述一下,继承封装多态分别是什么意思
- synchronized和lock区别
- ConcurrentHashMap线程安全怎么实现的
- 创建线程的几种方式,创建线程池几个参数的含义,线程饱和策略
- sleep和wait区别
- spring是单例还是多例,多线程并发会出现什么问题
- SpringBoot如何解决跨域,具体怎么配置
- 全局异常捕获怎么做的
- SpringSecurity的前后端分离,登录怎么做的
- 怎么设计一个安全的对外接口
- 单线程的redis为什么这么快
- redis持久化方式
- 什么是聚簇索引,什么是非聚簇索引
- mysql事务隔离级别
- 你觉得你能承担独立开发的任务吗
其他问题回答得挺好的,自我感觉不错,本来以为能收到offer的,但是朋友说那个面试官觉得我不行,不能承担独立开发系统的任务,估计是第8个问题回答失误了吧,其他我觉得我回答没有问题。
教育家网络科技
面试的人比较多,所以是群面,一个面试官对应多个面试者。虽然我回答得比另外一个面试者好很多,但是没有收到offer,很迷,真的很迷。
面试题
- 介绍项目,然后基本上就围绕着项目的业务说
- 对金额的计算用什么类型,数据库中用什么类型存储
- SpringBoot怎么自定义注解
- mysql优化,like查询的时候,数据量很大,如果like查询以%开头,不会走索引,怎么优化。多表关联查询,怎么优化
- 代码优化怎么做的,平时重构从哪方面考虑
海康交通大数据
海康下面的一家分公司,主要做车辆交通相关大屏数据统计报表之类的,面试官和我一个学校的学长,开头就问我是哪个老师教的,吓我一跳哈哈哈哈,我以为给老师丢脸了。
面试题
- HashMap原理,底层结构,1.7和1.8区别,头插法还是尾插法、线程安全吗
- ConcurentHashMap在什么地方加的锁,1.7和1.8区别,1.7用的segment,1.8用的synchronized
- lock和synchronized这两个区别,1.6之后对synchronized做了什么优化
- 偏向锁、轻量级锁是怎么做到的,我回答的是每个对象都有对象头,对象头里做的标记,然后他问我对象头里有哪些信息
- list和数组区别,哪个会内存泄漏,查询的话哪个快点。我觉得查询是一样快的,因为list本来底层就是数组
- 线程池各个参数介绍一下,原理是什么。你常用哪种线程池,为什么?
- 有哪些队列,你线程池一般用哪种队列
- spring怎么解决循环依赖
- jdk动态代理和cglib区别,哪个更快,有没有看过他们生成的字节码文件
- cloud相关的组件用过哪些,hystrix熔断原理是什么,除了线程池还有什么。熔断有个半开状态,有什么用
过程还是挺愉快的吧,就是薪资待遇没有谈到位,比较可惜。
咻电科技(自带简历)
一家做共享充电宝的公司,面试官又是和我一个学校的学长,但是没有给我放水。
面试题
- spring生命周期
- 线程池有几种创建方式
- 线程生命周期
- eureka原理
- lock和sync区别
- 有一个表有几个亿的数据,写sql分页查询怎么优化
- redis内存淘汰策略有几种
- dubbo熟悉吗
- 脏读幻读不可重复读,怎么解决
- jquery冒泡了解吗
最后问了一些学习相关的建议,收获挺多的。
协能共创(自带简历)
公司很小,面试官架子不小,面试全程非常不愉快,经常在我说到一半打断我,挺会嘲讽人的。面试的时候没有空间了,然后在外面靠近电梯的走廊面试的。
面试题
-
因为我的项目是做人脸识别相机相关的,然后他问我图片处理到算法识别经历了什么过程,我是直接调算法,最多把jpg格式的图片转成bgr格式,或者图片有旋转的,通过exif修正旋转。但是我的回答好像不是他要的,然后就直接打断我,说我不知道就直接说不知道
-
rabbitmq用了哪些设计模式。发布订阅模式,还有其他的吗,我不知道,有知道的朋友可以告诉我一下
-
tcp/ip协议
-
让你设计eureka,你怎么设计
-
乐观锁,悲观锁介绍一下
我:乐观锁实际上没有加锁
然后他就直接打断我了,发出一声嘲笑,问我:那你觉得什么是锁。
-
jvm参数调优怎么做的
我回答的是用的微服务部署,有的微服务访问很频繁的,就多给他设置一些内存,比如网关,一些不怎么用到的,可以设置稍微小一点。然后他说:你们这就是全凭感觉瞎设置呗
哎,面完之后心情低落了很多,难受了一下午,开始质疑我自己。
通甲优博(自带简历)
坐车坐了两个小时,然后去面试先hr面,了解了基本的情况,然后没了。
我还是请假坐车2个小时过去的,hr没有提前了解我的基本信息就给我发面试邀请了吧,然后过来面试才觉得我不合适,所以直接就没有技术面试了。
返空汇
就是最开头说的那家,招聘网站上常年挂着招聘岗位,起码挂了快一年。过去先是做了一套笔试题,满分100,60分及格,没及格就没后续。
国信杰云科技
前一天电话面试,自我介绍之后,问了一些技术问题,然后就让第二天到现场面试。
现场的话,整个公司人员不超过10个人,本来想走了的,想着来都来了,进去坐坐也无妨嘛。结果这是我做的最后悔的一个决定。
整个面试体验非常差,面试官线是让我自我介绍,我前一天已经在电话里做过自我介绍了,不知道这是什么意思,面试中途还接了几个电话。
然后就问登录怎么设计的,前端密码怎么传输过去的,明文还是加密,我说前端加密没有必要也没意义,最多加上https,他说加上https没用,就是要加密传。
我就在思考怎么回答他的时候,他说这是面试,请你尊重这次面试(说话语气带了点怒火,感觉要骂人了),我也不能忍啊,直接起身就走了。
总结
面试和工作是两回事,面试没通过的人,工作能力不一定比你弱,面试通过的人,工作能力不一定比你强。所以面试没通过也不要灰心,回去好好总结复盘,不要因为失败就丧失斗志,加油!