- 开始
-
临近十一国庆节的时候,我办了离职手续。正好假期回家呆了几天,见了见一些好朋友。假期结束回北京后又休息了一周的时间。从两周前开始投简历找工作,中间也陆陆续续的面了几家公司(大概五六家),不是很多。到目前为止还没有合适的机会,所以借此总结一下面试过程遇到的一些问题。毕竟有总结才会有收获,才能成长和提高。
-
最先接到的是一个阿里的电话,本来说是通知我准备一下最近几天的电话面试。结果后来说我之前已经投过他们公司了,系统中有我的信息,没法再把简历推荐过去了,遂放弃了。不清楚阿里是一个什么机制,好像半年内不能重复投?。。
-
真正开始面的第一家是中国电信,是在西直门内大街的冠华大厦。过来了三个人面我,其中一个应该是团队的负责人。整个过程中他问的是比较多的,剩下两个较少一些。开始就是先自我介绍,说下之前的工作经历,以及工作中的职责。
-
中国电信
- 因为之前的一个项目中负责的是配置中心这一部分,所以问到了是怎么做技术选型以及技术预研的,有没有对比过百度的disconf和携程的apollo有什么区别(当时项目中用的是apollo),二者有什么区别?
- 说下dubbo和zookeeper,项目中是怎么用的,你是怎么理解的?
- 一个service接口有两个实现类s1和s2,现在有两个controller c1和c2,怎么做到c1中注入s1,c2中注入s2。(就是想问按类型装配和按照名称装配)
- vert.x是异步的,dao层操作数据库是同步的,项目中是怎么处理异步和同步的关系?
- ElasticSearch了解吗?为什么快?底层原理?倒排索引?
- redis好像提了一下,这个记不太清楚了。
- 线程池了解吗?有哪些?各个之间的区别?线程池的参数?
- NIO和BIO,Netty。
- 说说最近在学习的一门技术。
- 说说你在项目中遇到的问题以及是怎么解决的?
- 你有什么想了解的,要问我的?(就大概问了问主要是做什么的,技术栈有哪些?)
一家创业公司,主要做人工智能方面的。
- 先问了问平时什么语言写的多,我答的Java。Java是不是还是用spring那一套居多,我说是的。(好像并不关心用什么语言)
- 出了两道数据结构的题。
- ①用两个栈实现一个队列。
- ②求一个给定数组中最大子组数的和。
58集团
- 说下线程池?有哪几种,适用场景?有哪些参数?
- HashMap1.8之前的实现原理?是否线程安全?有没有安全的?
- 由第二个问题聊到ConcurrentHashMap,是怎么实现的?线程安全又是怎么保证的?1.8和1.8之前的区别?做了哪些优化?
- 自己实现一个ArrayBlockingQuene
- 说下你对可重入锁的理解以及实现原理。
- jvm内存模型,垃圾回收算法,垃圾回收器,jvm参数调优
- 说下dubbo都有哪些模块,画下图。
- Linux怎么查看端口是否是占用,怎么截取一行日志的最后一个字符?
- Java命令行怎么看jvm内存使用情况?
嘀嗒出行
- 写一下归并排序。
- Spring的AOP是怎么做的?用了什么设计模式?
- 平时多线程用的多吗?说下线程池。
- hashmap的get方法查找的时间复杂度?链表是否会影响查询效率?
- 高并发场景下的性能优化?
- 说说bio和nio
易车
- 说下你觉得什么是好的编码规范?
- 谈谈对设计模式的理解,知道哪些设计模式?
- 说说Redis
- SQL和NOSQL的区别
- 知道iframe吗?说下。
- 说说ajax。核心对象是什么?如果该对象不可用的情况下怎么办?
平安健康
- 谈谈对zookeeper的理解,项目中是怎么用的。
- 说说MySQL(事务,索引,引擎等等);什么时候不会用索引;有没有支持范围查找的索引;聚集索引了解吗?
- spring的aop和ioc。spring有没有看过源码。
- zookeeper的强一致性是怎么保证的?
- 说下对redis的理解。多路复用技术,master slave的通信。
- MySQL的高可用
- mybatis和hibernate的区别?有没有看过mybatis的源码?
- 平常怎么做性能测试?
- varchar(25)和varchar(50)有什么区别?会有影响吗
- 可重入锁和死锁的区别?
- 说说什么叫自旋?它归为哪一类锁?
- 能写shell和Python吗?
- MySQL中的innodb和myisam引擎的区别?
- 现在运行的有多个系统,怎么不让dao层和service层耦合?
- ES的倒排索引。
总结
-
总体来说,重点还是在Java中的多线程,并发以及锁这一块。数据库方面主要还是事务,MySQL的索引原理,实际使用场景,引擎等。框架方面就还是侧重Spring的居多。
-
主要就这几家了,问题有的就比较模糊了,勉强记个大概。因为大多数都是一面,所以还是Java基础问的居多,项目可能别人并不太感兴趣,就问的比较少。问题看上去问的都比较少,也比较基础。但是很多时候都是一个很宽泛的话题,并不是某一个具体的问题给你。这个时候考虑很多的还是知识面的宽度和深度,怎么能让你自己掌握主动权,把问题引到你熟悉的范围中来。各个零碎知识点怎么能够在大脑中串起来,做到有料可说同时又显得并不牵强,避免非要把这些散件拼凑到一起的尴尬。
-
暴露出来的问题
-
基础有待夯实。有的也听说了解过,广度是有,但是深度不够。很多时候实际开发中没有遇到过,缺少实战经验,相对来说理解也就没有那么深刻。在以后的工作和学习中,还是要先精后广,让自己有一项非常熟悉的领域。
-
项目经验不足。像一些高可用,分布式,性能优化或者一些思想、架构层面的思考,想法不多,不够成熟。
-
有时还是会紧张,导致一些该回答上来的没有答好,或者是回答的太牵强。怎么说呢,这个慢慢克服吧。
-
技术的提升或者是经验的积累,往往都是需要一个过程。学习没有捷径,必须一步一个脚印,踏踏实实的往前走。一天两天成为不了大牛,仰望星空,脚踏实地吧。
2018年10月于燕郊
-