保融科技-oc 10/17 offer
10/17 - oc - 11k - 当天逼签三方,违约金11k
一面-10/14
- 群面-1h
0、自我介绍 1min
1、线程池介绍
2、日志介绍
3、集合:HashMap 和 线程安全问题
4、异常是什么,请详细介绍
5、讨论业务问题:A、B 转账,银行业务
6、1min - 1.5 min 介绍实习经历
7、如何理解乐观锁和悲观锁
- 乐观锁和悲观锁是并发控制的两种不同策略,用于解决多线程或多进程环境下的数据访问冲突问题。
- 乐观锁:乐观锁的基本思想是假设并发访问的数据不会发生冲突,因此在读取数据时不会加锁,只有在更新数据时才会进行冲突检测。
- 乐观锁通常使用版本号或时间戳等机制来实现。在读取数据时,会记录下数据的版本号或时间戳。在更新数据时,会比较当前数据的版本号或时间戳与之前读取的版本号或时间戳是否一致,如果一致则更新成功,否则表示数据已被其他线程修改,需要进行冲突处理。
- 乐观锁适用于读操作远远多于写操作的场景,可以提高并发性能,但需要处理冲突的情况。
- 悲观锁:悲观锁的基本思想是假设并发访问的数据会发生冲突,因此在读取和更新数据时都会加锁,以防止其他线程对数据的修改。
- 悲观锁通常使用互斥锁(如Mutex)或读写锁(如ReadWriteLock)来实现。在读取数据时,会获取共享锁,允许其他线程同时读取数据;在更新数据时,会获取排他锁,阻止其他线程读取或写入数据,直到当前线程完成操作。
- 悲观锁适用于写操作频繁的场景,可以确保数据的一致性,但会降低并发性能。需要根据具体的业务场景和数据访问模式选择合适的锁策略。
乐观锁适用于读多写少的场景,可以提高并发性能;悲观锁适用于写多读少或读写操作频繁的场景,可以确保数据的一致性。
8、业务题:select 期间进行 update 会不会影响 select的结果 — read view ,read commit / repeated – 不影响
总结:都是一些很大问题,一组人(8个)各自说明、补充完善,每人一下,时间就过去了。
二面-10/15 - 40min
1、自我介绍
2、如何学习的这么多技能点
3、如何理解DDD(简历中有写到)
4、接下来就是照抄的问题:
- 大学假期,最有成就感的一件事
- 你自己的优点是什么
- 你的缺点是什么
- 父母对你的影响
- 遇到的最大的挫折是什么
- ……