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

栏目: 数据库 · 发布时间: 5年前

内容简介:其实收到jd的面试邀请的时候,我真心有点小激动。因为在地理位置上,jd应该是最合适我也是最想去的。但是我在看到方向的时候其实心里有很多的问题,也做好了被拒的准备。因为是开车去,所以到亦庄的时候第一个问题是找车位,但是京东周边的马路上是基本不可能找到的了,还看到一个司机因为倒车慢了一点,被另外的小车司机迅速停入,吵吵了半天。最后在一个角落找到一个停车场,需要预约码才能停,门口没有任何标志,还是问了门卫大叔才知道一般外来的都会停在这。(jd也是够了。。藏得这么隐蔽。还有马路边都贴条)我是在京东A座面试,先用身份

前言

其实收到jd的面试邀请的时候,我真心有点小激动。因为在地理位置上,jd应该是最合适我也是最想去的。但是我在看到方向的时候其实心里有很多的问题,也做好了被拒的准备。

面试过程及感受

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

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

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

其实在 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: 当时的回答: 1、Innodb支持事务 2、Myisam支持表锁,Innodb支持行锁 3、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点击加入群聊 ,私信管理员即可免费领取


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

微创新

微创新

德鲁•博迪、雅各布•戈登堡 / 钟莉婷 / 中信出版社 / 2014-4-5 / 42.00

好产品不一定要颠覆,微小改进就能让用户尖叫! 引爆创新领域的全新方法论 互联网时代行之有效的5大创新策略 创业者、产品经理必读的创新行动指南 《怪诞行为学》作者 丹•艾瑞里 《影响力》作者 罗伯特•西奥迪尼 全球50位最具影响力的商业思想家之一丹尼尔•平克 周鸿祎、黎万强、罗振宇、牛文文、张鹏 联袂重磅推荐 为什么iPod可以在众多mp3产品中......一起来看看 《微创新》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具