京东 Java 后台三面凉经
一面(54 min)
-
项目介绍
-
SpringMVC 工作原理、内部流程
-
MyBatis (缓存机制,一级、二级原理和作用,映射是怎么实现的,XML 怎么对应到 Mapper ***模式)
-
MySQL 怎么分页
主键 id 自增,很多数据,怎么获取十条数据:将每次 limit 的时候获取到的 id 索引,在下一次 limit 请求的时候加上这个索引 where 这个 id 再进行检索。
-
HashMap 原理
结构、put、get、remove 的流程、负载因子、当前数组容量、扩容阈值、哈希映射怎么解决冲突
转换为红黑树之后插入节点要进行什么操作
-
ThreadLocal 是安全的吗?讲讲原理分析与使用场景、内存泄漏、弱引用
-
讲讲 JVM 内存分区
-
线程间的通信方式(操作系统层面,信号量等等)
-
讲讲 volatile 关键字,能否实现线程安全?
-
项目中遇到的困难
-
做项目时候和成员交流有困难吗?意见不一会怎么样?
编程题:
-
链表判环(入环点、环的长度)
-
有一个无序整型数组,如何求出该数组排序后的任意两个相邻元素的最大差值?(桶排序,尽量分散,桶的数量为 (最大 - 最小)/ 元素个数)
二面(1h11min)
-
讲讲红黑树
-
InnoDB 与 MyISAM 的区别
-
手写线程池需要哪些参数
核心 10 队列 1000 最大 100 的情况线程池怎么处理
-
JDK 8 与先前版本的区别
主要:Stream 流 管道
-
索引最左匹配
-
SQL 怎么调优?
-
List、Map、Set 有什么区别?详细讲讲细分
-
HashMap 与 Hashtable 的区别
讲迭代的区别顺势还讲了快速失败和安全失败
-
ConcurrentHashMap 如何实现线程安全?加锁是读和写都加吗?
-
hash() 和 equals() 方法在哪些情况下需要重写?
-
static 变量与非 static 变量加 synchronized 有什么区别
-
项目中数据库的表是怎么分的?是否用到强连接?强连接如何取消(保持一致性的情况下)?
-
有调试过垃圾回收吗?
-
讲讲 CMS 和 G1
-
讲讲 JVM 内存分区
-
项目中遇到的困难
编程题:二分查找(递归与非递归)
三面(59min)
-
项目介绍
-
为什么硕士就念两年
-
解释一下 MVC 三个字母代表什么
-
GMS 与 G1 的区别、应用场景
-
垃圾收集算法
-
线程与进程的区别?为什么要有线程?
-
Synchronized 与 Lock 的区别
-
反射机制(原理、使用场景、Spring 注入)
-
分布式系统
消息队列,消费者运行速度不一,如何控制数据的同步(保证插入先于删除)
编程题:删除链表多个值
#京东##面经##Java工程师##校招#