扫描下方海报二维码,试听课程:
java
(课程详细大纲,请参见文末)mysql
本文是公众号读者润土投稿的面试经历面试
感谢润土同窗的分享算法
首先介绍一下个人面试经历,上周花了一周的时间,面试了5家公司,拿到两个offer,这篇面试分享是在拿到第二个offer的当天晚上写的。spring
因为时间相隔较短,因此面试大部份内容都记得,我就单刀直入直接写一下个人面试内容,写做水平通常,有点像记流水帐,你们将就着看看。。。sql
面试过程还原:设计模式
1、360金融缓存
360一上来就是作几页纸的题其中包括选择题20题和简述题9题,加上填表时间,一共给了我45分钟。tomcat
其中简述题主要有如下几个安全
写出最近项目中代码工程目录结构,简述各部份做用
如何避免对外开放接口被攻击,有哪些经常使用的防御手段能够用上?
描述线程池的做用,并写几个经常使用的线程池类
什么是操做的互斥性,接口幂等性如何保证?
异步通知交互补偿机制的目的和设计?实际工做当中有没有作过,踩过什么坑么?
描述一下TCP三次握手和四次握手地过程,查看TCP链接各状态用什么命令?
谈谈Threadlocal是如何解决并发安全的?
Equals()方法与==的区别?重写equals方法的还须要重写哪些方法?为何?
列举一个设计模式,用代码或者伪代码实现
45分钟后,准时过来收题了。
过了一会以后、进来了一位面试官、进行了技术上的面试。
谈谈你在项目中的角色,作出哪些贡献、项目的组织架构是怎么样的?公司有多少人?
给我画一画系统架构图
谈谈并发,谈谈分布式缓存
谈谈分布式事务
你在实际的工做当中有没有用到线程池?
谈一下你平时是如何设计系统的?系统是如何拆分的?要考虑哪些问题?
如何将一些热卖的商品推荐给用户的?
谈谈作过哪些系统优化?以你的实际经验和踩过的坑拿几个真实的案例出来讲说?
面试结果:没有进入下一轮、直接回去等通知,挂掉。。。
2、行云全球汇
一、这家公司就是HR一上来就谈了一些问题,好比你的职业规化、技术上有哪些短板、为何要离开上家公司、跟上级领导性格不合怎么办、遇到技术问题出现僵持不下怎么办、以及问了一些其它的一些问题。
二、而后技术人员过来交谈了近一个半小时,谈的技术主要围绕简历上进行的。
一、谈谈分布式事务?
二、分布式缓存的一系列问题
三、你看过springboot源码,说说springboot的启动过程?
四、beanfactory与factorybean的区别是什么?
五、有用过线程池吗?有哪些线程池?线程池里面有哪些核心参数?
六、Jdk7与jdk8的区别
七、谈谈HashMap
八、有用过volatile吗
九、springsecurity与shiro的区别、以及它们的使用场景?
十、zuul网关Filter处理流程及异常处理
十一、eureka与zookeeper注册中心的区别?不用eureka能够吗?eureka已经中止维护了,有哪些替代方案?
十二、现场手写遍历一棵树
1三、在系统中如何作sql优化的? b+树和b-树有什么区别?
1四、mybatis中${}与#{}的区别?Statement与PreparedStatement的区别?
1五、mysql中的数据如何与es进行同步的?同步是否有延迟?
1六、说下netty,你在实际的工做当中,哪里用到了netty?
1七、分布式会话是如何实现的?
1八、Jvm中有哪些算法?
1九、一个服务慢了你是怎么定位的?
三、而后就是管理者来谈了一些问题
主要问了就是你在项目中的角色、有没有带人、手下面有几个兄弟、以及将来的规化等。
四、再就是换了一个HR来谈了一些问题,过往的一些工做经历、 肯定入职时间,谈薪等。
面试结果:拿到offer
3、某千万级用户量的水果新零售公司
这家公司也是另一家楼主拿到offer并最终选择去的公司
楼主选择的缘由是公司流量和用户量都在千万级别以上,有较大的发展空间
另外,薪资是25K * 13,也比较满意,工做时间是双休5天7小时制,总体来讲性价比仍是很高。
下面说下这家公司的面试过程:
一、一上来就是研发副总监进行面试
一、自我介绍一下
二、大家系统的用户量有多大?日活多少?高峰时期qps有多大?
三、说说分布式事务,给我手画一下大家分布式事务是如何实现的?用了这个事务框架有没有遇到问题。
四、Redis有哪些算法?给我描述一下。
五、给我画一下大家的系统架构图(而后进行了描述)
六、说说大家的系统为何要用springcloud,不用dubbo?
七、说说dubbo?
八、说说zookeeper?
九、说下java的内存模型
十、netty的线程模型是怎么样的?
十一、tomcat有哪几种 Connector运行模式?
十二、Spring提供了哪几种标准的事件、分别给我描述一下?
1三、mybatis 是否能够映射 Enum 枚举类?
1四、给我描述一下springmvc的请求流程
1五、说说分库分表有哪些方案,为何选择了sharding-jdbc而没有选择Mycat,说说大家是按照什么规则进行分库的?分库分表以后是如何进行关联查询的?
1六、说下jvm的运行时数据区?有哪些垃圾回收器?
1七、有对mysql进行优化吗?是怎么优化的?
1八、有用过流程引擎吗?说说Activitiy底层原理。
二、而后是总监上来谈了一会、主要谈了一些我的倾向与职业发展等问题
三、HR面谈、比较详细的问了过往的一些经历、谈薪、以及何时入职等。
4、其它2家小公司
此外,楼主还面试了其余两家小公司,问的东西相对来讲都比较简单、最后都是由于双方不太匹配、最后没有谈成。
我的的一些面试体会
最后说一下我我的在面试中的一些体会,供你们参考。
第一个就是答题思路,这一块的话,当面试官问到某个问题的时候,我脑海里面就基本上呈现出一幅画面,加上一些文字性的记忆,而后能够一步步的说出来。
因此建议你们平时准备的时候,尽可能对某个技术点多画图,画图理解,辅助记忆,我的感受效果挺好的
另外,找工做面试是一个重要的环节,面不少试是一个身累心累的工程,在寻找到下一个理想下家以前,每一次感受就要胜利,又每次掉回空中,不想要被折磨。
我以为要学会总结,总结本身,总结公司,要先认识到本身的优缺点,硬件和软件,硬件专业技能,行业资源,从业经验,软件性格成长,情绪管理,精神状态,将来规划等。
关于offer选择的话,应尽可能选择在自已指望范围以内的,包括薪水、工做氛围、技术、业务等、这样进去以后你才会作得开心。
这就是个人面经分享,但愿能够帮到各位在准备面试或正在面试的朋友们。
END
《21天互联网Java进阶面试训练营(分布式篇)》详细目录,扫描图片末尾的二维码,试听课程