京东面试题(JAVA)

京东17号一面问题与回答情况
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区别 
A4: 当时的回答: 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握手画出来了,第二个问题没答上来

个人资料
小黄瓜
等级:6
文章:16篇
访问:2.7w
排名: 23
上一篇: 华为笔试题(C语言)
下一篇:京东面试经验
猜你感兴趣的圈子:
京东笔试面试圈
标签: 代理、cglib、没答、jdk、innodb、面试题
隐藏