【面试】京东成都研发部面试

在拉钩上投递的简历,第二天京东就打电话了,效率还挺快的,激动得发抖。由于面试预约的是周一,所以周末在家准备了,啃了几遍《深入理解Java虚拟机第二版》,便上阵了。

9点过来到京东成都研发部(西部智谷),很天真的等到了9:40(大学里辅导员说去面试时不要去早了,提前10-20分钟就好),结果上去时有一个哥们已经面试了接近半小时了。

进入一面

走来了一个面带微笑的同志,很年轻,先让我做个简单的自我介绍,过去的工作经历,为什么想要离职,这些都是比较主观的问题,就随心聊聊了。

几乎是按着简历上写的东西问问题,然后不断深入,这个过程,他偶尔嘴角起笑,笑的我瘆的慌,答问题时都紧张起来了。一面时,问的一些问题如下,以及一些我的答题思路。

1.介绍一些ConcurrentHashMap以及底层原理。

可类比HashMap的底层,数组+链表思想。通过HashCode来决定Key在数组中的位置,然后以一个Bucket(桶)的形式处理Map.Entry对象。ConcurrentHashMap只不过在Bucket上加锁处理,在Map达到负载容量后,会重排序Bucket,此时涉及到线程安全问题。

2.LinkedList, ArrayList区别,分别在那种情况下选用。

LinkedList 底层是链表,适用于有更新操作,ArrayList底层为数组,适用于快速索引访问。

3.你用过哪些设计模式

单例模式 --- 引出懒汉、饿汉式写法,按需加载式、枚举式单例,还有一个DCL双锁机制单例,这些都需要代码说明。

工厂模式、动态代理模式--- 会让你拓展的展开,代理模式是怎么回事,动态代理是怎么回事。关键字:InvocationHandler, 反射

4.Spring 中的容器理解

IoC, 各模块协同工作,由容器来管理Bean

5.Int 多少字节,一个对象的大小编译期间能确定大小吗

int 4字节(哈哈),当时我说能,在编译期间对象的大小就能够确定下来,计算对象的属性字段即可,然后问我String能确定吗,当时差点被绕进去。

6.聊聊Volatile关键字

轻量级同步方案

7.线程在执行同步的静态和非静态方法时,有什么区别。

线程进入了一个类的静态方法后,其他线程不能进入该类的同步静态方法

线程进入了一个类的非静态方法(实例方法)后,其他线程不能进入该类的同步实例方法

7.平时逛哪些社区,怎么拓展Java技术(非技术性问题)。

ImportNew,开源项目


剩下的有些忘了,然后让我先等一下,焦急的等了一会儿,进入二面。

二面感觉要温和点,坐下时,让我先简单介绍自己,二面主要围绕JVM,数据库,多线程等,然后继续。

1.介绍一些JVM的内存结构

上Heap,VM Stack,Native Stack, Method area, PC, JVM Engine

2.类加载方式

Bootstrap ClassLoader、Extension ClassLoader、 Application ClassLoader、 委派加载

3.对象从New到被回收,经历了哪些过程

Eden,Survivavor、老年代

4.介绍G1及处理过程,有什么优势

回答的不满意。

5.设计一个日志生产者-消费者队列方案

我提到了一个BlockedQueue. 解决队列满了,然后多线程生产,多线程消费,怎么控制。没答好,他提示了用ExecutorService配置线程池,配置线程方式(可丢弃,继续等待),这个方案令我茅塞顿开,以前从没用过,这个在三面时帮我大忙了。

6.两个Oracle实例,相同的查询(一条SQL)怎么返回不同的结果

折腾半天都不会。他提示说用数据库的某个字段如ID取模, select update 语句

7.深入聊聊设计模式,如单例中的DCL

代码说明就好

8. 继续聊Volatile

线程可见性、指令重排序

9.LRU设计

HashMap+双向链表

然后进入三面,面试官感觉很nice,几乎是京东的场景回顾设计,涉及到负载,集群,多线程,数据库等,自由发挥吧。

如 统计Dao层方法,Service方法的执行情况

用工具:jhat,jstack, jmap, VisualVM

用AOP


以上,2015-4-7

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值