首先说一下uc的面试,面的是活动平台组的java技术专家(这title一定要写出来装逼一下)在朋友内推后混了一个面试的机会,然后蹩脚的复习了一些面试题,结果被面试官虐得体无完肤~
首先是自我介绍~(以下想到什么写什么,没顺序的)
接下来就针对我的项目进行问答:
1:画出项目架构图,说说这样设计的好处,并发多少,为什么这样设计等等。-----由于之前公司的项目并发少得可怜,然后为了装逼弄了写负载均衡跟redis缓存mysql读写分离等,结果被狠狠的鄙视了一波~
2:针对自己项目里面的某个场景进行介绍,为什么这样设计,然后帮忙指出了很多不足
3:根据项目相关交流给出一些总结和建议
然后是知识点的问答:
1:死锁发生的四大条件~ 由于没有背那四个条件,所以只是描述了死锁产生的一个例子,然后描述的时候默认就是已经获取了锁,估计也是大大扣分。
2:有没有接触过nio框架~直接回答没有,只是对netty有一些了解怕被问深入直接不敢说接触过,所以跳过
3:说说四次挥手,每次挥手的状态,timewait发生在哪个时候~大概讲了四次挥手的概念,但是没能答到面试官想要的,timewait发生在第四次挥手后(然而我回答错了~哭)
4:说说http协议里面的header
5:说一下jvm~这块我熟啊,在黑板上各种画各种讲,从jvm内部架构讲到堆内存到垃圾回收,把深入jvm虚拟机里相关的知识巴拉巴拉搬了一遍,这部分勉强过关吧
6:说说classLoader~刚开始回答了装载----链接-----初始化-----使用------卸载这一背答案式的回答后被打断说具体点。然后就说了通过双亲委派原则加载相对应的二进制文件到内存中,然后就进行校验,准备之类的。但是感觉不是面试官要的答案,就这样结束了这块的问题。
7:问了mysql相关的,myIsam跟innodb的区别(不知道当时哪根筋答错了回答说myIsam是b -tree索引的,直接被鄙视到):其实这块就是表锁行锁的区别,支不支持事务的区别还有聚簇索引跟非聚簇索引的区别,那些innodb不支持fulltext索引或者是myIsam的count计数这些个人感觉没啥特别的。
8:然后就问myIsam跟innodb在查询上哪个快一点~我就又巴拉巴拉讲了聚簇索引跟非聚簇索引的性能,然后说了一下innodb的覆盖索引。不知道是不是面试官要的答案,就听到他一直嗯嗯嗯~
9:后面就是聊一聊职业规划,学习方式之类的
还有几个问题不太记得了有tomcat相关的,有网络相关的,基本答不太上来。总体来说就是去大厂面试确实紧张,很多会的东西都被自己给说懵圈了,然后也确实好多技术上面的深入的跟细节方面没掌握好,这条路还很远很远啊~最后面试官还给了些意见跟建议,很感谢他,很好的一位面试官。很推荐大牛们去uc试试
对于cvte的面试,流程是酱紫的电话面----hr面----总监面
电话面是在几天前的一个晚上~主要面试的内容大概有:
1:讲讲项目,说一下自己职责,如何管理团队,并发多大之类的,这块没什么技术交流,就是具体的介绍了一下。
2:讲讲spring的ioc跟aop~额,烂大街的问题啦
3:讲讲事务~就回答了事务的四大特性跟四大隔离级别之类的
4:讲讲mybatis是怎么做到读写分离的
5:有没有用过Oracle~答:只会在上面增删改~
6:讲讲容器~就回答了set,list,map区别啊性能啊作用啊之类的。然后就是具体说了HashMap底层存储,如何解决Hash冲突。还有就是cuncurrent包下的一些并发包的理解。
7:问了一下怎么进行sql优化
8:平时写代码时应该注意什么之类的
。。。。。
电话面大概聊了半个多钟头,然后就约去公司面
然后就是下午去了cvte那边,确实环境太高大上了,感觉跟村里的孩子进城一样。就是位置太偏了,在香雪地铁站还要坐几个站公交的地方。
首先是hr面,问了各种他们认为的心理学问题吧,住哪里啊,来这边不方便怎么办啊,什么优缺点啊,职场上最不能容忍的事啊,最近一次职场发火啊,爸妈做什么的,爸妈谁对你影响最大,爸妈个性特点介绍一下,爸妈有没有给你这次找工作寄予什么要求,爸妈有没有给你这次找工作提供什么意见或建议,最近有没有考虑其他公司啊,cvte跟uc比哪个更吸引你啊,为什么选择cvte啊,什么原因会让你拿到offer后选择放弃啊,最低薪资要求啊巴拉巴拉问了一堆。
耗时一个钟左右
然后就叫来了技术总监来面试
1:有没有用过Oracle啊~不是很会用(已卒~)
2:说说mysql的innodb跟那啥的区别(额,那啥~)
3:说说平时写sql需要注意什么~巴拉巴拉回答了如何充分利用索引啊,利用覆盖索引啊,不用or用union all等等一堆
4:有没有接触过springboot,springboot相比springmvc有什么好处~就回答了springboot里整合了很多starter方便开发,去xml配置化之类的
然后接了个电话,问了要多少钱,面试结束。。。。卒~
耗时20分钟不到
总的来说cvte的技术面试难度不大,hr难度大到你不敢想。所以要去cvte面试的娃就别忘了好好看看心理学~~~而且据说一般都是早上8点左右到晚上10点多回家,不能承受加班压力的也就别尝试了。但是福利跟工作环境确实好
总结今天的面试吧,早上的uc然后意识到自己知识上面有多么的薄弱,知识面广而不深,可能是程序员最顾忌的,所以以后一定要往深的学,不然就会被问到感觉什么都会,但问深入点就什么都不懂的尴尬了。再一次感谢uc的面试官,人很好,能力很强,也很阳光。下午的cvte就让我学会了怎么跟hr打交道,额,也不能说学会,就是见识到了跟这种大厂有点装逼的hr打交道。今天收获颇多,感谢今天的各位面试官。
立个flag~接下来的日子里静心专研技术,好好提升自己的能力。
11-1号更新:
uc一面竟然就那么过了,随即收到hr的二面通知,于是早上又去受虐了。二面面试官是一面的主管,主要面试考核的是我业务能力跟开发能力两块
其中业务能力这块是根据我之前的项目,讲了下项目的整体业务,然后根据业务进行问答。然后问了下有没有成本控制,当成为什么这么设计,成员分配还有业务里面的一些细节流程。之后也根据项目问了些技术相关的,如nginx能支撑多大并发,redis能撑多大并发,mysql能撑多大并发等等
接下来就是考察我的技术掌握:
首先要我画出自己的知识树,然后针对我的知识树进行问答
主要问到的几个内容有:
1:mysql一张表有一百万行数据,然后有个走了索引的sql,问能撑多大的tps
2:distinct跟group by效率对比
3:b -tree跟b+tree区别,mysql有哪些查询优化的配置
4:如何理解分表处理,你觉得表多大的时候需要分表,为什么
5:说说熟悉的搜索引擎并对比
6:jvm如何检查内存溢出
7:jvm如何调优之类的
8:http长连接短连接区别
还有好多问题不是很记得了,问得都比较深入,很多都是自己的技术盲区,所以面试官直接说了不合适了,最后面试官给了几个建议,还加了微信。
面试官总结:
1:业务上接触的东西比较简单,很多问题没有考虑到,实战方面能力欠佳
2:技术栈不仅窄而且不深入
3:相对三年经验的人来说属于中等能力,达不到招聘预期
个人总结:
1:需要制定一个知识树,对于自己薄弱的点一定要好好补,争取早日填满树
2:对于掌握的知识一定要反复深入的研究,不能总是半桶水
3:找一个好的平台,接触更多的业务场景,然自己在业务设计方面有一定提升
真心觉得uc很好,面试官能力很强,这两轮的面试官都帮我指出了很多不足跟提出很多建议。希望自己在未来几年里好好学习,一定要再去uc试一下。