滴滴提前批三面面经

一面
1.oop思想
面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,用类来表示。某个事物的一个具体个体称为实例或对象。面向对象编程的核心概念包括类、对象、 封装、继承和多态
2.list和set
3.HashMap和HashTable
4.二叉树左子树节点和
递归属于dfs bfs 层序遍历哪一种 dfs!

二面
1.mysql乐观锁
乐观锁通常使用版本号来实现。每个数据行都有一个版本号,当事务读取数据时,会记录下读取时的版本号,在提交事务时,会检查该版本号是否发生了变化,如果变化了则表示发生了冲突,事务需要进行回滚。
乐观锁是一种相对轻量级的并发控制机制,适用于并发冲突较少的场景,可以提高系统的并发性能。
2.mysql事务隔离级别
3.场景题:抢红包分布式系统 如何实现一人一单
基于数据库的分布式锁、分布式缓存redis的原子操作
4.场景题:如何限制tps
令牌桶算法限流、负载均衡、消息队列、缓存、数据库优化(如索引)
5.令牌桶算法
leetcode15 三数之和

三面主管面
实习拷打
1.mysql悲观锁和乐观锁

悲观锁: 悲观锁假设在整个事务过程中会有并发冲突发生,因此在访问数据之前就会对数据进行加锁,以防止其他事务对数据的修改。主要通过使用SELECT ... FOR UPDATE语句来实现。
乐观锁: 乐观锁则假设在整个事务过程中并发冲突的概率较低,因此不会事先对数据进行加锁,而是在提交事务时检查是否有其他事务对数据进行了修改。主要通过使用版本号或时间戳来实现。

乐观锁的优势在于不需要显式地加锁,减少了锁的开销,但需要在更新数据时进行额外的版本号或时间戳的检查。

悲观锁适用于并发冲突概率较高的场景,适合处理长时间的事务操作;而乐观锁适用于并发冲突概率较低的场景,适合处理短时间的事务操作。

2mysql索引合理性
查询频率、数据量、数据更新频率、索引选择性

反问 滴滴哪些部门有前景、盈利
了解一个公司可以看财报 滴滴国际化主要盈利为金融 出行 外卖配送 在南非国家如巴西建设基础金融支付服务 类似于支付宝微信支付这种业务
全部评论
老哥 三面是没有手撕吗
点赞
送花
回复 分享
发布于 2023-08-28 18:07 广东

相关推荐

点赞 16 评论
分享
牛客网
牛客企业服务