面试京东Java架构师,居然被问这些题,学到了!

前言

其实收到jd的面试邀请的时候,我真心有点小激动。由于在地理位置上,jd应该是最合适我也是最想去的。可是我在看到方向的时候其实内心有不少的问题,也作好了被拒的准备。程序员

面试过程及感觉

由于是开车去,因此到亦庄的时候第一个问题是找车位,可是京东周边的马路上是基本不可能找到的了,还看到一个司机由于倒车慢了一点,被另外的小车司机迅速停入,吵吵了半天。最后在一个角落找到一个停车场,须要预定码才能停,门口没有任何标志,仍是问了门卫大叔才知道通常外来的都会停在这。(jd也是够了。。藏得这么隐蔽。还有马路边都贴条)面试

我是在京东A座面试,先用身份证和预定码换了入门的条,我觉得我能够很快的上楼,可是我发现我真的天真了,mmp,大家想一想一下12个电梯,在饭点(我预定的是下午两点)我从1点20开始等等到1点40竟没有挤上去。(呵呵脸),我面试的是在12楼,一咬牙爬了上去。(爬了10分钟,一身汗,在厕所平静了半天,期间厕所大爷跟我一块儿吐槽了电梯的难坐)算法

填了表格以后,我给hr小姐姐(我发现hr彷佛都是小姐姐)打了电话,两分钟以后,hr小姐姐来了给我领到一个位置,我再等面试官的时候又复习了一下我以前的项目,和一些以前面试遇到的问题。sql

其实在Java上层的开发来讲我对本身是有信心的。(天真脸)服务器

很少是第一面是两我的一块儿来的(一个姐姐,一个大叔)。基本上都是姐姐在问,问的大可能是原理上的问题。(固然我最大的问题我又发现了一个。。就是手写代码的能力太差。。。)让我手写了单例和一些方式方法。我在这里认可我本身对于代码的熟悉程度即便写了3年仍是不好。多线程

不是说对方法的不了解,是说对于具体功能细节上的了解不够。架构

而界面上作的工做太多也是问题,对于界面我能够写不少不少,可是对于底层就基本上没有什么了解了。并发

基本了解和介绍状况后,他们让我等了一下,另一我的很好的小哥过来2面。小哥也是基本了解了一下,说了一些,让我手写了一个方法。(虽然我能知道怎么作。。可是真的实现仍是须要很扎实很细的代码思想。。)最后小哥跟我聊了我如今须要了解的,其实三年的经验对于一我的来讲仍是太少,能够把表层了解的不少,而接下来须要作的就是深刻下去。负载均衡

他也给我简单介绍了一下我目前须要学习的主要内容,和能够努力的方向和方法。我以为这才是此次京东面试的最大收获。框架

真题还原

Q1: HashMap的原理, 以及HashMap如何扩充bucket的大小
A1: 原理答上来了,如何扩容瞎答的,以前不知道扩容以后已经哈希的MapEntry如何处理,当时就说扩容后已经哈希的所有再计算并分配到新的桶里。

Q2: 是否对多线程有了解
A2: 了解的不深,被项目岔开没继续问

Q3: 项目中的Queue,单机容量达到上限如何集群扩展
A3: 懵逼,而后参考Hadoop的架构,把Queue分散到不一样的slave server中,并用一个”负载均衡服务器” master作反向代理,master存有job到slaves的映射表,接收broswer的Job请求,把Job分派给不一样的slave server。

Q4: 知道哪些负载均衡算法
A4: 不知道

Q5: Myisam, Innodb区别
A5: 当时的回答: 一、Innodb支持事务 二、Myisam支持表锁,Innodb支持行锁 三、Myisam数据索引一块儿存储,Innodb数据索引分开存储

Q6: Mysql索引的分类(Btree, hash),各自使用什么状况
A6: 没答好,当时回答说Mysql只有内存表支持hash索引(彷佛并非),面试官表示没据说Mysql内存表

Q7: Btree的查找原理:
A7: 没答上来,只大概叙述了一下B+tree的结构,每一个子节点有一个指针指向兄弟节点。

Q8: Spring的原理(AOP IOC), AOP的原理
A8: AOP实现原理是代理,给他讲了一下代理模式,而后嘴贱的说了一句AOP是基于cglib的动态代理实现的。

Q9: cglib是动态代理吗?简要叙述cglib的原理
A9: 瞎答:cglib基于ASM字节码生成框架,在运行时生成代理类的字节码文件并动态加载

Q10: cglib和jdk代理的区别?Jdk是否是动态代理?动态代理和静态代理的区别
A10: jdk须要接口,cglib不须要。Jdk是静态代理,根据反射来实现。动态代理是代码编译前代理类不存在,在运行时生成。(面试官说答错了,cglib是静态代理,jdk是动态代理,cglib在框架启动前已经生成好了全部的代理类。感受他说的也不全对)

Q11:简述三次握手,若是c端发起握手请求,s端没法马上创建链接应该回应什么?
A11: tcp握手画出来了,第二个问题没答上来

读者福利:

分享免费学习资料

针对于Java程序员,我这边准备免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)

为何某些人会一直比你优秀,是由于他自己就很优秀还一直在持续努力变得更优秀,而你是否是还在知足于现状心里在窃喜!但愿读到这的您能点个小赞和关注下我,之后还会更新技术干货,谢谢您的支持!

资料领取方式:加入Java技术交流群963944895点击加入群聊,私信管理员便可免费领取

相关文章
相关标签/搜索