京东提前批研发面经

【每日一语】真实人生中,我们往往在大势底定无可更改时才迟迟进场,却又在胜败未分的浑沌中提早离席。——翁贝托·埃科《开头与结尾》

京东提前批Java开发

本来想等面完再发个面经,等了半个月了没等到。

一面:

0 自我介绍,讲一下项目中的多线程实现

1 Java的线程池的参数,拒绝策略,阻塞队列等实现和使用

2 fixethreadpool使用的是什么阻塞队列,如果使用arrayblockingqueue或者linkedblockingqueue会有什么问题。

3 ArrayList和linkedlist有什么区别,扩容呢

4 hashmap,hashtable,concurrenthashmap1.7和1.8选一个说一下。

5 jdk1.8针对hashmap使用红黑树优化目的是什么,红黑树的结构说一下。

红黑树的特性:

(1)每个节点或者是黑色,或者是红色。

(2)根节点是黑色。

(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]

(4)如果一个节点是红色的,则它的子节点必须是黑色的。

(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

6 JVM了解么,说一下内存结构,堆区的分代,垃圾回收以及所用算法。

7 为什么要划分年轻代和老年代,方法区是否会垃圾回收,还问了gc时要扫描哪些位置,说了gc root,他问具体呢,虚拟机栈的局部变量,然后说其他忘了。

在Java虚拟机中判断一个对象是否可以被回收,有一种做法叫可达性分析算法,也就是从GC Root到各个对象,如果GC Root到某个对象还有可达的引用链,那么这个对象就还不能被回收,否则就等着被收割吧。

这里既然提到了GC Root,那么哪类对象可以作为GC Root呢,这是一个在面试中经常被问到的问题。

《深入理解Java虚拟机》一书中是这么说的,一下几种对象可以作为GC Root:

虚拟机栈中的引用对象

方法区中类静态属性引用的对象

方法区中常量引用对象

本地方法栈中JNI引用对象

8 MySQL了解么,说一下建立索引要考量的点,说了索引筛选率,过滤使用的字段,以及explain查看是否使用了索引等。

1、表的主键、外键必须有索引;

2、数据量超过300的表应该有索引;

3、经常与其他表进行连接的表,在连接字段上应该建立索引;

4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

5、索引应该建在选择性高的字段上;

6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

7、频繁进行数据操作的表,不要建立太多的索引;

9 MySQL的隔离级别有哪些,默认级别是什么,他说是可重复读。

10 为什么select方法默认可以不加锁呢,明明可能会有并发冲突,我说根据隔离级别判断是否加锁,他说可重复读级别下select是不加锁的,为什么。

我说应该是用了乐观锁,也就是MVCC多版本并发控制,适用于读多写少,所以不加锁。

11 Redis提供有哪些数据类型

二面:

1 讲一下两个项目,分别做了什么,觉得跟自己做的项目有什么不同,如何看待这种不同,应该如何改进。

2 平时怎么学习,你的博客一般写了什么,觉得和高质量博客的差距在哪里。

我说我原创的都是比较基础的,进阶一点的博客主要是整理别人的文章。

3 Java虚拟机了解么,讲一下内存分区和gc,如何排查堆内存的问题,说使用jmap转储dump文件分析或者使用jstat等工具检测gc。

4 Java的线程池了解么,看过它的源代码么,怎么修改源码可以实现线程状态的监控呢。

visualvm工具

5 web框架了解什么,讲讲SpringMVC的启动过程,讲了mvc上下文以及dispatcher初始化过程和请求流程。

6 设计模式了解么,单例,工厂,分别出现在什么场景。

Spring,servlet,Spring的工厂方法

7 MySQL的select1和select *有什么区别,为什么加索引访问比不加索引要快。

8 负载均衡的几种算法,缓存的几种淘汰策略。

9 计算机网络了解么,http的header有哪些字段,是否包含ip地址。

10 有什么想问,能先来实习么,不能。

我说了不能先实习,然后就没有然后了,emmm,等了2周没有动静,估计凉凉。

作者:How_2_Play_Life

来源:牛客网(www.nowcoder.com)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博客

Ioc模式和MEF

  分离关注( Separation of Concerns : SOC)是Ioc模式和AOP产生最原始动力,通过功能分解可得到关注点,这些关注可以是 组件Co...

9020
来自专栏Java3y

Hibernate【映射】知识要点

前言 前面的我们使用的是一个表的操作,但我们实际的开发中不可能只使用一个表的…因此,本博文主要讲解关联映射 集合映射 需求分析:当用户购买商品,用户可能有多个地...

32170
来自专栏公有云大数据平台弹性 MapReduce

yarn公平调度详细分析(一)

FairScheduler是yarn常用的调度器,但是仅仅参考官方文档,有很多参数和概念文档里没有详细说明,但是这些参明显会影响到集群的正常运行。本文的主要目的...

1.8K170
来自专栏高性能服务器开发

windows完成端口(五)

系列目录 windows完成端口(一) windows完成端口(二) windows完成端口(三) windows完成端口(四) windows完成端口(五) ...

53270
来自专栏web开发

使用jOrgChart插件实现组织架构图的展示

项目要做组织架构图,要把它做成自上而下的树形结构。 一、说明 (1)通过后台查询数据库,生成树形数组结构,返回到前台。 (2)需要引入的js插件和css文件: ...

365100
来自专栏我是攻城师

后台问题解答(2015-12-04)

33160
来自专栏码匠的流水账

storm drpc实例

10420
来自专栏微信公众号:Java团长

即将发布的 JDK 10 有 109 项新特性,你喜欢哪些?

按计划,JDK 10 将于 3 月 20 日正式发布。据前 Oracle 员工 Simon Ritter 的统计,JDK 10 总共包含 109 项新特性。当然...

7620
来自专栏hrscy

RxSwift - Why

官方建议总是使用 .addDisposableTo(disposeBag) 即使对于简单绑定来说那不是必要的。

16220
来自专栏腾讯Bugly的专栏

不给“爸爸”添麻烦 - iTOP iOS 动态库改造

苹果官方文档 对提交商店 APP 的二进制文件中__TEXT段大小有限制,超过大小限制的应用在提交评审的时候会被拒绝...

64190

扫码关注云+社区

领取腾讯云代金券