当前位置:   article > 正文

java小公司社招面试3则(稍微进阶)_java小厂面试

java小厂面试

小微公司混了3年,发现各方面距离1、2、3线大厂还是好远。毕竟搞了3年java了,大厂面试要求更高了,那咋办呢?去稍微大一些的互联网公司试试呗。这波面试要比上一篇面试难度高了,毕竟又多了一年经验吗。不过这次也是自己最惨痛、最失败的一次换工作。

前情回顾,java工作2年时候部分经验总结,如下
java小公司社招面试5则

用的知识基本没有脱离《java面试宝典》《阿里java开发手册》。同样还是小公司,面试基本都是1、2轮。这波由于实力略有增长,3面2offer,都是招聘app投递的简历。

一、面试全过程

三个公司都是互联网公司,规模在2、3百人的样子。一个证券(貌似国企),一个医疗健康创业公司B轮(给offer),一个巨型医药行业子公司(给offer)。感觉问的几乎一样,可能是赶上金三银四,也可能是3年经验就问这些了?不知道啊。

由于面试内容、公司规模都太过相似,下面直接总结3段面试经历。

1. 自我介绍:
(1)直接名字、毕业学校、学历、研究生的话研究内容(一句过)
(2)毕业后工作主要从事啥(java web开发)
(3)简单介绍公司涉及到项目和职责(运营后台和app等服务端开发为主,可按公司简单说说)
(4)用到技术(springmvc、mybatis、extjs、tomcat等等)
(5)离职原因(简单说第一个公司偏向项目管理觉得自己不合适、后边创业公司倒闭了、最近这次裁员具体情况不清楚),这个容易被问一下为啥被裁员,自己理解的说一下:业务被砍掉等等,基本就是实话实说了。

2. Sql调优经验,也可能说一下mysql有啥规范(这个请看阿里java开发手册,mysql部分)
(1)表名、字段名格式(业务_表名,字段小写单词间”_”隔开),mysql大小写敏感可进行配置,一般都是用大小写不敏感,约定都是小写字母。
(2)调优,注意索引(随意说几个吧),具体用explain 看一下就好了
i) 具有唯一特性的字段要建立唯一索引
ii) 常用查询字段普通索引
iii) 联合唯一属性字段,建立联合索引
iv) 基本固定长度字符串字段,用char类型,不用varchar
v) Varchar建立索引要指明长度
vi) Varchar不能太长,超5000,用text,并且单独建表存储
vii) 不是特别需求,别用order by,类似where a=1 and b=2 order by c,需要建立a_b_c的组合索引才能提高效率并且索引后边要放在order by 后边(这条是个人感觉)
viii) 链表查询,不超过2个表,对于关连建要建立索引,超过3个表联查要考虑业务上进行拆分或者添加冗余字段
ix) Like 查询不进行”%a”,简称左%模糊查询,这样导致索引无效

3. 描述一下项目架构:
基本都是server(业务逻辑,数据库交互)、interface(解析参数,数据格式转换)、前端(展示),这种结构。

4. 用到mq地方,主要说一下业务场景
交易场景,用户关心投资后看到的订单。但是还需要给用户发放积分、奖品、运营端的统计数据。可以将投资消息放到mq,由不同的服务进行消费来处理积分、奖品、统计业务,减少用户等待时间。

5. Redis使用(解决活动并发问题,比如存放数量等数据,每天有10个礼品用户来领)
(1)做分布式锁,用到redis的原子操作。用setnx,有数据就是锁住,同时设置过期时间,业务完成delete掉。(这部分感觉用zookeeper较多,知道就说说)
(2)原子操作,string、hash自增、自减等。

6. Spring原理
ioc、aop、事务得稍微了解点,想通透一点只能看spring源码相关,或者推荐一个帮助理解的书吧《架构探险 从零开始写javaweb框架》,这本书自己实现了一个简单web框架,感觉原理差不多就这样了,其实没时间不用看。主要说说以下几点:

(1)ioc是控制反转,意思就是讲类的创建交给spring,由spring的beanfactory进行创建。

(2)Aop,核心是动态代理。看一下大话设计模式吧,或者看上边那本书。从代理模式看起,静态代理->动态代理(jdk,cglib,知道就说说)。(后边可以忽略:这部分也就知道如何用jdk和cglib动态代理就好吧,原理也得看源码,基本就是反射动态创建proxy的class)。

(3)事务。这个基本从使用说起,原理就是aop。注解一般放在方法上,方法要是public的。然后就是传播方式和隔离级别,这个自己找个博客看看就好。下面这篇不错,有代码有真相的。http://blog.csdn.net/seelye/article/details/40118089
下面是一些零散问题

下面是几个随意的问题,问的少

7. 用过什么前端技术
答:没有专职做过前端,只能到代码开发级别,在现有框架写,不会切图。用过js,jquery,mui等等。

8. Jvm和gc,很少碰上,看一下深入理解java虚拟机相关部分
(1)jvm结构图,方法区、堆区是共有区域。虚拟机栈、本地方法区、程序计数器是线程独立区域。大概都保存了哪些内容,看看就好。
(2)gc,了解一下哪些会后算法,如cms回收器用的啥算法,这个了解一下就行。太复杂

9. 用过啥算法,这个…,用过就说说吧
(1)菜单,数据库树形结构存储,获取出来list,转为tree list,通过parentId。基本就是双层循环或者循环加一个map。
(2)排序,一般也是数据库排序拿出来了,自己排序知道实现comparable接口就得了,或者用容器里边的排序。或者用SortedMap(这个不确定啊没用过)

自己提问:

10. 用啥控制工作流程
就是问问软件开发流程,可能用的工具、文档等。如果对面不知道你说啥。就说开发流程,从需求->产品设计->开发(美工、前端、服务端接口等)->测试->上线,这个流程如何进行。
如果回答的比较专业,有需求讨论、数据库设计、架构设计等等吧,可能感觉应该是不错团队,起码不同步骤由专门人去做。

顺便问一下一个开发流程大概多久吧。如果答案是看心情的话就尴尬了,这样和没计划也没区别了。希望不是口口相传吧,这个感觉就有点恶心,实际碰上个混乱开发模式、感觉撕逼大战无处不在,加班也可能无处不在啊。希望是碰上一个有计划、有稳定开发流程团队吧,效率高,可能会比较顺畅一点。

11. 如果感觉对面说的不错,顺便点点头,表示自己听懂了。时不时看一下对面的脸部吧,要不然也不知道看哪,太尴尬。

综上:基本实话实说,知道的就多说点,不知道的也就别忘那边引了。有些问到,自己不太清楚的话,可以给出自己的想法。大体思路就是,用到场景->业务干嘛->如何用的技术,再然后就是技术原理了。感觉就是用什么技术解决了什么业务问题吧,这样就可以了。

最终去了医疗健康创业B轮的公司,这是近几年工作做得最差的决定,哎!也是自己认定为最惨痛、最失败的根源。主要是自己和这里风格不搭,一腔做事的热血,被混乱和戾气过重的工作氛围搞迷茫了。自己还是年轻,没能调整好心态。

二、多么痛的领悟

1、即使是程序猿,跳槽也应当到相同行业,行业间也是有代沟的。同行业跳的话经验是可以带来更多薪酬加成的。

2、面试官谦逊的态度、一直笑呵呵的、问的问题很有条理,往往工作的团队氛围不会太差。装逼的、问题逻辑混乱(跳跃性很强、前后问题关系不大),就得考虑一下面试官的能力问题了。再加上一般面试的是自己的领导,那真得考虑考虑了。当然,不能一概而论啊,也可能是压力测试。不过小公司,还是应该考虑一下,毕竟面试是相互的,自己工作生活的地方啊。

3、可以直接问一下面试的是不是直接汇报工作的领导。如果赶上直属领导刚离职,那就尴尬了,有可能小组会有不少问题。当然这个不好判断,只有自己入职了才知道,入职了才知道被坑,哈哈哈。猿小明就是被坑了,在这分享出来吧。

在惨痛的领悟后,直接导致下面事件的发生

9周大龄后端转机器学习——背景篇
9周大龄后端转机器学习——学习篇
9周大龄后端转机器学习——面试篇

后面会持续更新java面试真实案例,从实践出发,详细讲述各种互联网公司笔试、面试。

关注公众号「迷茫猿小明」,可实时获取学习资料、职场趣闻,也可帮看简历哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/765933
推荐阅读
相关标签
  

闽ICP备14008679号