这里我连续介绍三家公司的面试,一家是只有一面,还有两家是面完一面就没去了,没去主要是当时一周面了6家而且是在不同的城市,就选择性的挑了这两家没去,是在是太累了,6月17日那天嗓子都面哑了。
###第一家(2016-06-13 14:00)
这是一家本地电商企业,简称S, 企业规模还真是特别大,面的是互联网金融的职位。总共面试就一面,1个多小时,大概的过程就是被蹂躏。。Java基础好像没怎么问,大体上问了一些分布式架构的相关问题。
比如:Kafka, ActiveMQ, RabbitMQ之间的区别以及各自的使用场景。
比如:LVS和Nigix的区别及使用场景
比如:Redis和Memcached
比如:Zookeeper和Keepalived
大体就是抓着问到你不会为止,反正是被蹂躏了。。
过了一周后被通知说面试过了,期间一直以为挂了。而且给的薪水其实是蛮好的了。真是无法理解。。
这其实是真正的第一家面完了的。
技术上没什么通用性,就当谈笑风声了。
最后没去主要是因为比我的期望少了一点点,只要不达标,立马要拒掉,否则想着留一个保底,后面的面试就没那么的有战斗力了。置之死地而后生。
###第二家(2016-06-07 10:44)
这是一家大型国企,相信看我博客的小伙伴就算没用过他的产品也听过它,如果没听过,只能表示你住在深山里的嚒。。这里简称C。这家公司面完一面(电面)就没选择去,主要有两点:1. 大型国企最重要的是管理,约好10:00没来电,后来去催才来的,所以管理上有偏差;2. 他招的不是纯Java的,需要Js,python都用的,博主在目前的公司中就C,C++,JS,Java都写,比较厌烦这种“不专一”的行为。
回忆一下面试题,大概有以下一些:
1.负载均衡方式?
http重定向,DNS域名解析负载均衡,反向代理负载均衡,LVS-NAT, LVS-TUN, LVS-DR.详细可以参考《LVS:三种负载均衡方式比较+另三种负载均衡方式》。
2.AIO? Tomcat中有没有AIO?
博主说Tomcat中有BIO,NIO但是真没见过AIO。面试官说tomcat中有。后来查看了一下资料,Tomcai中有三种模式BIO,NIO,Apr,你指的AIO是Apr嚒。。。囧。
3.问了一个js的问题:写个var变量它挂在那个对象上?
好久没写js了,写的时候也是用框架Dojo写(这个知道的人很少,一般用Jquery的多),想了一会儿说:document,然后又被问了个问题document的父对象是什么? 母鸡啊~
4.数据库优化策略。
凡事数据库相关的一概懵逼。虽然博主用过DB2, Oracle, MySql, SQLServer甚至还用过Access,但是不足以应付面试。短期强化也没意义,一般被问到就说母鸡啊~
5.Tomcat原理。
基本上简历上写了什么东西,都被问了一边原理。这个Tomcat的还真没看过。。懵逼态。
###第三家(2016-06-16 20:30)
对于这家没有什么印象,猎头介绍的,简称为Z好了,面试还是中规中矩的。当时刚面完一家公司I刚回到宾馆就接到电话,嗓子很疼,就心想着快点结束吧,也没怎么记住面了什么,大致是如下这些:
1.Redis和数据库之间的数据一致性问题解决方案。
博主说了一种方法,大致是这样的:将某个库上的某个key要发生的写操作,记录在缓存中,并设置“经验主从同步时间”的缓存超时时间为500ms,这时间是指数据库主备同步的时间不会超过500ms,但是也有可能发生超过500ms的现象,当然可以设置的更久一点,只会偶尔发生最终一致性问题,大多数时候可以保证强一致性。由于一般数据库是读写分离的,写的时候将写的操作在数据库中执行并存入缓存设置超时时间500ms,当读的时候,先查缓存Redis,如果有相关记录则从Redis中返回,如果没有则说明已经同步到负责读的数据库中了,可以直接从读数据库中读取数据,这样也能做到读写数据库的分离。
有关数据一致性问题可以参考《浅析数据一致性》。
2.简述下生产消费者模式,发布订阅模式。略
3.SpringBean的加载过程。
这个上一篇博文中也有描述,这里再说一下自己的理解。其实这个是蛮长的一段,主要有一下一些步骤(博主个人理解,仅供参考):xml解析之后存入一个BeanDefinition之中,然后主要是对其进行操作;先在singletionObjects(是一个ConcurrentHashMap的对象)判断有没有Bean的实例,有就处理下返回,没有就继续;检测一下循坏依赖之类的;下面要进入主题了,如果是单例(Spring Bean默认是单例)的话,就创建实例并存入singletonObjects中,如果不是则创建不保存(当然这里也有一个非常复杂的过程,这里就不论述了);实例创建完之后就开始属性注入(autowiredByType, autowiredByName);初始化Bean(激活Aware方法:BeanNameAware, BeanFactoryAware, ApplicationContextAware等;BeanPostProcessor接口;激活自定义init方法:init-method, InitializingBean接口;);这里就可以使用Bean了;使用完之后就是销毁了(destory-method, DisposableBean接口)。有关Spring的一些知识点可以参考《Spring知识点提炼》。
主要是根据简历来问一些问题。
更多链接请关注:
这里有一份面筋请查收(一)
这里有一份面筋请查收(二)
这里有一份面筋请查收(三)
这里有一份面筋请查收(四)
这里有一份面筋请查收(五)
这里有一份面筋请查收(六)
这里有一份面筋请查收(七)
这里有一份面筋请查收(八)
参考资料: