阿里巴巴高德出行java/go实习

不是哥们这也能过?????居然约二面了????
1.自我介绍
2.mysql引擎了解吗
3.你觉得不同引擎有什么区别?我们经常用innodb,innodb好好在哪里?我们一般什么时候不用innodb?
4.mysql死锁了解吗?
-5.自己建张表,写两个事务,写出死锁的例子。
6.你觉得有个服务有2个接口,调用这两个事务,这会发生什么?业务层上监控的指标会有什么变化,能想到啥说啥?你觉得XX指标变化的量级会是多少?
7.业务上一般怎么处理mysql死锁?
8.现在有一个服务,有10个接口,其中2个高qps(1w)的接口分布调了上面的两个事务,其他8个接口(qps1k)也读这个库,那8个接口你觉得监控指标会发生什么变化?你觉得XX指标变化的量级会是多少?
9.它在mysql底层是为什么呢?
10.mysql一般我们用事务用什么隔离级别?
11.可重复读和可串行化的区别是啥?
12.它在mysql底层是为什么呢?换句话说可重复读的实现原理是什么?可串行化的实现原理是什么?是什么导致了它们的区别
13.讲讲mysql下索引。
14.聚簇索引底层和非聚簇索引底层是什么?
15.现在我们有张表用uuid建表,有张表用自增id建表,1kw行记录,添加数据的效率谁更高?为什么?
16.接着15的场景,我们建完表了,其他数据都一样,只是一张表是uuid作为主键,一张表是自增主键,谁的查询效率高?为什么?
17.讲讲你对一般怎么排查慢查询sql。
18.你提到了一个阈值,阈值一般怎么设置?慢查询优化阈值一般设定死的吗?
19.你在other提到了临时表,你觉得临时表什么时候会出现?
-20.自己建张表,写个sql,写出单表查询的场景下出行临时表的例子。
21.你用过redis吗?你一般用redis干什么?
22.redis的数据结构你了解多少?
24.你如何利用redis实现个分布式锁?现成的可以讲讲原理?用原生的redis怎么做,讲讲加解锁的逻辑?
25.为什么跳表时间复杂度是log(N)?
-26.自己举个跳表的例子,来说明他平均查询复杂度是log(N),最好直接公式推导。
27.redis里面我们经常提有大key和热key,你分别讲讲大key是啥,热key是啥?
28.大key会导致什么,热key会导致什么
29.你觉得有个服务有1个接口,调用这个redis的大key/热key,这会发生什么?业务层上监控的指标会有什么变化,能想到啥说啥?你觉得XX指标变化的量级会是多少?
30.现在有一个服务,有10个接口,其中1个低qps(100)的接口调用了大key/热key,其他9个接口(qps1k)也读这个库,那8个接口你觉得监控指标会发生什么变化?你觉得XX指标变化的量级会是多少?
31.redis支持持久化吗?
32.AOF在文件里面存什么?RDB在文件里面存什么?
33.你觉得AOFRDB混合持久化会丢数据吗?会在哪个范围丢数据,为什么?一个redis实例一般会丢失多少数据,这个数量级是多少?
34.AOF持久化的时间有哪些?
35.现在有个redis cluster,8个主,有个宕机了,缓存命中率会下降多少,为什么?
36.你了解一致性哈希吗?
37.一致性哈希的话,有个宕机了,缓存命中率会下降多少,为什么?
38.一般一致性哈希中会提到一个虚拟节点,虚拟节点是用来干什么?
39.加了虚拟节点的一致性哈希,有个宕机了,缓存命中率和不加虚拟节点一不一样,为什么?
40.你一般用kakfa干什么
41.kafka如何实现顺序消费?kafka本身内部实现讲讲?业务层有什么保证顺序的手段讲讲?
42.现在有一个kafka,消息堆积了,你觉得为什么会消息堆积?业务层一般会怎么处理消息堆积问题?
43.接着42,它消息堆积,我把它扩容了,原来20台机器我扩容成40台,但是消费者的tps没变,这是为什么呢?想想所有可能的原因,能讲多少是多少?
44.kafka一个分区可以被多少一个消费者组内不同消费者消费吗?一个消费者可以同时消费多个topic吗?
45.你讲讲对线程安全的理解吧。
46.比如说现在有个concurrenthashmap,你不对他加锁就进行一些叠加操作,这个可能会有问题吗?为什么?
47.你用过哪些锁?
48.reentlock相比于syn在使用上有哪些更优秀的地方?
49.reentlock底层原理展开讲讲。
50.讲讲reentlock支持可重入锁特性的源码是怎么设计的?
51.讲讲reentlock支持区分公平和非公平特性的源码是怎么设计的?
52.由你设计一个动态线程池,你会怎么设计?
53.java线程池过程?java线程池原理?
54.threadlocal,怎么用?什么东西在栈上?什么东西在堆上?为什么设计成弱引用,不是容易内存泄漏吗?
55.mybatis星号和井号有什么区别?
-56.自己写个sql,能实现sql注入。
#牛客在线求职答疑中心##实习,投递多份简历没人回复怎么办##阿里巴巴##我的实习求职记录##软件开发2024笔面经#
全部评论
哥们你触犯天条了吗,实习问五十多个问题
224 回复 分享
发布于 2024-08-21 22:56 山东
2024最震撼的一篇
65 回复 分享
发布于 2024-08-21 22:57 山西
这是在招领军人才?
61 回复 分享
发布于 2024-08-21 23:18 北京
这是在找实习生还是找数据库专家啊😅
58 回复 分享
发布于 2024-08-22 01:20 四川
上辈子做了什么孽这辈子学Java
30 回复 分享
发布于 2024-08-21 23:16 江西
你最后招了吗
30 回复 分享
发布于 2024-08-24 16:53 陕西
八股都还行,就是一提到手写,什么什么量级变化,完全弄不上来。
21 回复 分享
发布于 2024-08-22 08:22 重庆
把这个面经拿下以后拷打面试官
18 回复 分享
发布于 2024-08-22 08:36 山东
漏了漏了,还从redis的单线程开始拷打,一路问到redis的多路复用,和epollpoll原生的多路复用有啥区别
12 回复 分享
发布于 2024-08-21 23:13 北京
请问这是在上刑吗
10 回复 分享
发布于 2024-08-21 23:11 安徽
本来觉得自己数据库还行,好了我知道自己是菜鸡了😢😢😢
5 回复 分享
发布于 2024-08-23 08:57 陕西
简直上刑场
4 回复 分享
发布于 2024-08-22 23:50 黑龙江
这是什么啊太牛逼了
4 回复 分享
发布于 2024-08-28 12:58 北京
2 回复 分享
发布于 2024-08-22 00:12 河南
我实习的部门 确实是这个面试强度
2 回复 分享
发布于 2024-08-22 11:22 北京
不是哥们
2 回复 分享
发布于 2024-08-24 01:07 上海
高德出行是高德打车吗?
1 回复 分享
发布于 2024-08-21 23:15 广东
可能不想招人吧
1 回复 分享
发布于 2024-08-22 10:52 重庆
八股盛宴
1 回复 分享
发布于 2024-08-23 10:02 北京
逆天啊😅😅😅
1 回复 分享
发布于 2024-08-23 14:17 广东

相关推荐

头像
03-07 20:59
已编辑
华中科技大学 Java
1,第一题,可以发现每个数只有与不一样的数交换才有贡献,比第i位为1,i < j,只有s[j]为0才可以交换,统计一下前/后缀0/1的个数就可以了,然后加一下贡献```#include <iostream>#include <vector>using namespace std;int main() {    string s;    while (cin >> s) {        long long res = 1;        vector<int> a0(s.size() + 1, 0), a1(s.size() + 1, 0);        for (int i = s.size() - 1; i >= 0; i --) {            if (s[i] == '0') {                a0[i] = a0[i + 1] + 1;                a1[i] = a1[i + 1];                res += 1ll * a1[i];            } else {                a0[i] = a0[i + 1];                a1[i] = a1[i + 1] + 1;                res += 1ll * a0[i];            }        }        cout << res << '\n';    }}// 64 位输出请用 printf("%lld")```2,可以hash一下每个图,每一行有多少个?每一行的值就是多少,11111代表五行每行都只有一个问号,后面就容易不少了。#include <iostream>#include <string>using namespace std;int main() {    int n;    cin >> n;    while (n --) {        string map[6];        int hash = 0;        for (int i = 0; i < 5; i ++) {            cin >> map[i];            int count = 0;            for (int j = 0; j < 5; j ++) {                if (map[i][j] != '#') count ++;            }            hash = hash * 10 + count;         }        // cout << "hash:" << hash <<'\n';        if (hash == 32223) {            cout <<0;        } else if (hash == 11111) {            cout << 1;        } else if (hash == 22311) {            cout << 4;        } else if (hash == 31111) {            cout << 7;        } else if (hash == 31323) {            cout << 6;        } else if (hash == 32323) {            cout << 8;        } else if (hash == 32313) {            cout << 9;        } else {            if (map[1][3] != '#') {                if (map[3][1] != '#') cout << 2;                else cout << 3;            } else {                cout << 5;            }        }    }    }// 64 位输出请用 printf("%lld")3,字典树比较模板的题,可以学一下字典树怎么写的,然后在字典树路径下贪心找最优解#牛客AI配图神器# #include <iostream>using namespace std;const int N = 2e5 + 10;int tr[N * 60][2], cnt[N * 60][2], ind;void insert(int x, int mod) {    int p = 0;    for (int i = 31; i >= 0; i--) {        int v = x >> i & 1;        if (tr[p][v] == 0) tr[p][v] = ++ind;        cnt[p][v] += mod;        p = tr[p][v];    }}int getMaxXor(int x) {    int res = 0, p = 0;    for (int i = 31; i >= 0 ; i --) {        int v = x >> i & 1;        if (cnt[p][!v]) {            p = tr[p][!v];            res += 1 << i;        } else {            p = tr[p][v];        }    }    return res;}signed main() {    int n;    cin >> n;    int cnt = 0;    while (n --) {        int a, b;        cin >> a >> b;        if (a == 1) {            cnt ++;            insert(b, 1);        } else if (a == 2) {            cnt --;            insert(b, -1);        } else {            if (cnt == 0)             cout << -1 << '\n';            else cout << getMaxXor(b) << '\n';        }    }}// 64 位输出请用 printf("%lld")
在西伯利亚种土豆:这第二题直接暴力if else结果出bug了,调了半小时眼睛都快瞎了。还是大佬这方法简单
投递饿了么等公司7个岗位
点赞 评论 收藏
分享
评论
196
973
分享

创作者周榜

更多
牛客网
牛客企业服务