京东提前批一面面经(44min)
更新:当天下午5点收到了复试邮件
(2021/7/23,电话面,约的11点,等了50分钟开始面,面试官人蛮好的,有说明迟到原因,还耽误了午饭时间面的,到12点半左右结束,全程44分钟)
- 自我介绍
- 看您有两个项目,框架用的是Spring吗,是微服务的项目吗
- 能说一下您在项目中做了什么吗,负责哪些模块,能体现技术能力的
- Java 中有个 Object 基类,里面有两个方法:hashcode()、equals(),他们是做什么的
- 再问一下 List 集合,ArrayList 和 LinkedList 有什么区别?
- LinkedList不支持随机访问,但是我们 List 接口肯定有通过下标去 get(),LinkedList 想实现 get() 怎么实现呢(每个节点有前后指针,根据这个找)
- 这两个 List 都是线程安全的吗,有没有线程安全的 List?(Collections.synchronizedList、CopyOnWriteArrayList)
- 你刚才提到了 ConcurrentHashMap,说一下它是怎么保证线程安全的,用的什么数据结构和锁机制
- 刚才提到了 CAS,能详细说说吗
- CAS 的 ABA 问题了解吗,怎么解决
- 用 synchronized 实现一个简单的死锁,你会怎么实现
- ThreadPoolExecutor 有哪些参数,每个参数大概都是干什么的,整个工作流程是怎样的,workQueue 满了会怎样
- 说一下 Spring 的 IOC
- Spring 会帮你创建实例,那它整个的流程是怎样的,启动的时候是怎么个流程,最后怎么就让程序员能直接获取并使用实例
- 如果我想在整个项目启动之前,初始化一个全局的线程池,或者打印日志,要怎么实现(启动过程中实现 Aware 接口)
- Spring 中用到了哪些设计模式
- 你们的项目里有用到什么设计模式
- Sql 语句:只有一列 name,里面有重复的,怎么把重复的名字找出来(Group by...Having)
- 索引最左匹配原则
- 中间件有了解吗,比如 Redis、消息队列
- Redis 为什么快
- Redis 的单进程单线程用到了什么模式/方式,其他的中间件也有用到的(IO多路复用)
- 反问:部门是京东零售技术与数据平台中心,技术栈