## 数字马力面经
### 同学 1 
时长-35分钟
0 自我介绍

1. 怎么学习
2. tcp ip三次握手四次挥手 

3. http和https什么区别 https安全交互有什么步骤（不知道）

4. 对称性加密，非对称性加密 （不知道）

5. cookie和session的区别

6. 实现单例对象有几种方式 这些方式优缺点是啥 为什么懒汉要双重判断？

7. 怎么计算两个ArrayList的并集 交集 差集(好像有一些API，当时没答出来)
8. ArrayList和LinkedList区别 优缺点 是不是线程安全，怎么使用一个线程安全的List
9. currentHashMap怎么保证线程安全 1.7 1.8区别
10. 怎么理解Hash冲突
11. 序列化 反序列化的理解 什么时候需要用到 怎么用 为什么要指定UID 为什么我序列化后插入一个数据后反序列化有什么问题 为什么有这个问题？为什么你说uid不指定就会出现这个问题（这地方不是特别熟，并且有点紧张，说的很差，最后心态直接爆炸，直接说我了解的太少。这里我就不想面了）
12. StringBuffer和StringBuilder说一下
13. Springboot如何获得IOC容器 （都在背八股，太长久了忘了）
14. Springboot加载文件顺序，不在同个目录下呢？
15. 用到gateWay是吧。gateWay如何实现url重写(不知道)
16. Feign用过是吧，怎么通过openFeign进行请求头设置(没用过，不会)
17. mybatis # $ 区别
18. maven会用吧，说一下依赖传递性（忘了，说成了继承，被他点着说：我要你说依赖传递，你说的是继承）
19. Spring事务用过吧，原理是什么 静态代理原理是什么？
20. bean加载过程 如何在装配阶段进行bean的替换，复制(md都是背八股，都忘了之前的实操了，回去好好复习了)
21. 数据库四大特性 数据库隔离级别 默认隔离级别 RR是不是完全解决幻读？举个没解决幻读的例子
22. MVCC说一下 
23. 聚集索引 非聚集索引
24. 类加载器作用，为什么要通过类加载器进行加载
25. 反问

总结：不知道不了解都说烦了，没信心了，直接GG。虽然都是常规的八股，但是加上有点紧张回答的不好，并且面的广度比较大，包括一些ArrayList的API，maven依赖我都很少用，并且有些问题没有说清楚，看你不熟悉就直接往深处一直问，只能说一句不了解不知道来结束这个问题，有些计网的八股还不是很熟。就这样吧，秋招不行我就滚去实习准备春招了，春招不行我就去送外卖。


### 同学2
数字马力（郑州 java开发）
10/23 笔试 算法三道题

1. 哈希表判断重复

2. 链表CRUD "insert 1" "delete 0"，这种字符串解析对链表CRUD

3. 正则表达式匹配  这种题是true/false的，直接全false A 33.6% 全ture A 66.4，先骗一下。后来又用java String的API全A了。

10/28 线上一面（40min）
0. 其他都是常规问题
1. AQS源码
2. AOP源码
3. ConcurrentHashMap源码
4. spring的事务传播机制及实现原理

源码部分我都不会，也是我接下来需要补足的。不过面试官非常好，给我说我这边给你过了，不确定你二面能不能过。

10/31 线上二面
0. 果然不堪一击！

面试官很好，是我太菜。


### 同学3
数字马力 一面
1. 先问一些java基础吧，
2. Java的Map了解吗，有哪些实现。那CurrentHashMap怎么保证线程安全的？
3. 你在使用Map的时候怎么遍历，有哪些遍历的方式，既然Iterator可以遍历，你说说Iterator。
4. 多线程有哪些参数，工作中的使用多线程的场景你说一下，有没有遇到什么问题，怎么解决死锁的。
5. Spring Bean的生命周期，Spring的Bean为什么默认是单例模式，那减少JVM GC垃圾回收的实例，你说下垃圾回收的一些算法吧，回收过程起死回生这个现象出现在那个阶段。
6. RabbitMQ怎么保证程序执行成功消息一定发送成功，消息发送成功消费者消费失败，你有什么补救措施（或怎么处理）。
7. Redis缓存，Redis分布式锁，一些场景和应用吧。
mysql优化一些问题等。记不太清了。

ps: 一面问的都比较基础但是会抓着一个点一直问。

### 同学 4 
面经：主要看着简历问的，简历上写知识点的有点忘了，给自己挖坑了

1. 讲讲NIO（不会，然后接着问了IO
2. 单例模式有哪些实现方式？
3. mysql慢查询怎么优化？
4. 主从复制原理
5. bean的生命周期（忘了
6. 了解jvm吗？
7. juc包下有哪些类？实际使用？
8. 讲讲ReentranLock
9. 场景题
10. 反问环节。

作者：鼠道难
链接：https://www.nowcoder.com/feed/main/detail/6b65b2fa96f64b2f8c92127702e03775?sourceSSR=search
来源：牛客网

### 同学 5
数字马力/1面
1. jvm的内存结构
2. 有哪些类加载器
3. 双亲委派机制
4. spring的ioc原理
5. spring的事物执行原理
6. spring  aop的底层基于什么实现的
7. mysql的主键索引和唯一索引的区别
8. mysql底层基于什么实现的
9. b+树的运行原理（没答上）
10. 做了这么项目最熟悉哪块（挖了个坑，说自己数熟悉线程池，多线程，并发）
11. 不用现在的开发工具，你如何去实现一个线程池（回答要有一个队列，他问我为啥要队列，额，说队列不是关键的，麻了，我说起到缓冲的作用，又给自己挖了个坑，mq就是多并发的）
12. 那你自己知道mq的consumer是怎么实现并发消费的
13. feign和http的区别
14. 什么是微服务，cap是什么？

还有一些面试题不记得了，感觉寄了🐔

作者：喜欢后撤步的大老虎觉醒了
链接：https://www.nowcoder.com/feed/main/detail/c20f18e722b24cefbca55f6550ef62c8?sourceSSR=search
来源：牛客网


### 同学 6
数字马力-Java开发工程师（长沙）- 一面【已过】

0. 自我介绍
1. 实习项目组做的是什么业务？
2. 开发组大概是有多少人？人员分配呢？
3. 你做的这些项目都是来源于哪里啊？
4. 一个项目大概要做多久？
5. 在哪里找的项目？一般通过哪些网站找的？
6. 介绍一下API开放平台里面有哪些内容，以及是怎么实现的吗？
7. API签名认证算法你是怎么设计的？
8. 看你项目中使用异步编排进行解决接口响应慢的问题，那么对于接口响应慢的问题你一般有哪些思路？
9. 你的项目中商品的预热是怎么做的？
10. 那你一般怎么进行保证数据库与缓存中数据的一致性问题？
11. 看你使用过RabbitMQ的延时队列，你知道他的底层是怎么进行实现的吗?
12. 分布式锁使用的是Redisson对吧？
13. 扩展问一下：处理redis可以实现分布式锁，还有哪些技术栈可以实现分布式锁？
14. MYSQL是可以进行实现分布式锁，但是与Redis的实现方式不同，你知道哪里不同吗？
15. 还知道哪些技术可以进行实现分布式锁吗？
16. 你知道Redisson的看门狗机制是怎么进行实现的吗，为什么可以达成续期？
17. 我看你使用了SpringCache相关注解，你能给我介绍一下都有哪些注解吗？
18. 这个注解是怎么识别出参数，然后作为key的呢？
19. 比如说我在使用SpringCache的注解的时候，参数是一个对象，对象中有很多个属性，如果我们要使用对象中的属性作为key，那么我们该如何进行指定，才能让SpringCache注解识别到对象其中的属性？
20. 你知道EL表达式有哪些解析方式吗？
21. 你知道Spring对EL表达式有哪些支持吗？
22. 你知道EL表达式除了在SpringCache注解中使用到了，还在哪里使用到了El表达式吗？
23. ThreadLocal是用于存储登录态的哈？为什么要使用ThreadLocal啊，有相关的技术栈的考量吗（理由）？
24. 最后你会进行threadLocal的清除吗？
25. 如果现在是一个分布式项目，想要实现ThreadLocal的跨服务传递，有没有实现方案？因为分布式项目我可能调用的是下游系统，我想让ThreadLocal中的东西也传递过去，有没有了解过相关技术实现？
27. 线程池的相关参数有哪些？
28. 如果我现在要根据线程池参数，实现一个具有缓冲能力的线程池，该如何进行设计？
29. 这种方案为什么可以起到缓冲的作用，能解释一下吗？
30. 用线程池的时候参数你是如何进行设计的，还是说用默认的？
31. 进行反问