京东三面记录
一面记录
- 简单介绍下自己
- 介绍主要用到的技术(技术栈)
- 常用的数据结构有哪些?并大说了一些操作的时间复杂度
- 数组从下标最大的删与最小的删有什么区别?
- 介绍一下集合类
- list和set的区别?以及各个实现类和底层实现
- CopyOnWriteList的特点及实现
- HashSet的底层实现
- 介绍下HashMap和CurrentHashMap
- HashMap线程不安全会导致什么问题?
- 为什么1.8版本中会将链表转为红黑树?
- HashMap解决Hash冲突使用的什么方式?
- HashMap的hash函数讲一下(如何确定槽位)
- 创建一个线程有几种方式?项目中怎么创建的?
- 讲一下线程池
- 你们使用的任务拒绝策略是那种?
- 线上服务器最多可以创建多少个线程?
- 线程的状态有哪些?(线程的生命周期)
- 跟线程相关的方法介绍一下
- 讲讲Java中的锁?
- 重入锁怎么实现的?
- Synchronized讲讲使用及原理
- Synchronized的优缺点?
- retryLock了解吗?(有点蒙蔽没听过?没听说这个。。。)
- Java里的轻量级锁?
- JVM的内存区域
- 那个区域不会发生内存溢出?
- JVM运行时内存?
- 新生代老年代讲讲
- JVM为什么分新生代老年代?
- 垃圾回收算法讲讲
- 类加载过程讲一下
- 双亲委派模型讲一下
- Spring的启动流程
- SpringBean的作用域
- SpringBoot的特点
- 相比于SpringMVC有什么好用的地方?
- MySQL的事务隔离级别
- 索引了解么?balabala
- InnoDB还能有什么索引
- 为什么用索引?项目中怎么用的?
- 讲一下B+树的实现
- B+树与B树有什么区别?
- MySQL的锁哪几种?
- 行锁的实现?
- 你们项目中用到Redis都是怎么用的?
- 分布式锁你们是怎么做的?
- 为什么不升级Redis版本?
- Redis的内存淘汰策略 LRU?
- 讲讲项目为什么要用Hystrix
二面记录
- 画一画项目架构图
- 讲讲分布式任务调度系统是怎么实现的(项目这一块问了大概半个小时吧)
- ElasticSearch都用过那些查询方式
- 如何做数据同步的?(MySQL到ES)
- 如何做CodeReview的?
- SpringCould都用了那些组件?
- 什么场景用到断路器(Hystrix)
- 你是如何理解分布式锁的?
- Redis分布式锁你们是怎么用的?
- Redis你都用到那些命令?
- Synchronized讲讲
- 说说轻量级锁,无锁的方式(CAS ABA问题?)
- 加锁我们是为了解决什么样的问题?
- 说说volatile关键字
- 了解什么叫不可变类么?或者是叫不可变对象?
- final的含义是什么?
- 成员变量都是final修饰的话,如何进行赋值?
- 如何关闭线程?
- 我有8件事要做,最要要同意返回处理结果,每件事要进行异步的方式去做。你怎么完成这个需求
- 最后一个问题,我需要在项目启动时,将一些配置加载到内存中,你有什么方式能解决?
三面记录
- 简单的自我介绍一下吧
- 讲讲你做的项目吧(还是继续给面试官将任务调度系统)
- RabbitMQ优缺点讲一下?
- 分享一下你这个项目的挑战性吗?
- 项目中有遇到什么问题么?
- 讲讲SpringCould中用到的组件吧?
- Feign为什么效率低?
- 为什么大部分服务对外不提供的接口都是HTTP的?(没太理解什么意思)
- 讲讲项目中为什么会把MySQL升级为ES?
- CodeReview你都是怎么做的?
- list跟Set有什么差别?
- HashMap跟CurrentHashMap有什么区别?
- 讲讲Redis的数据结构
- 问了问我现在的待遇,有什么想问我的?
#京东##Java工程师##面经##社招#每面大概都一个多小时吧,一面的问题多,但是问的都比较浅。
最后就直接回去了,也不知道过没过。周四面的,最后的面试官说最晚下周一给消息。
后面还有其他的面试,到时候会陆续进行分享
最后许个愿,期望能过吧!