腾讯3.21腾讯云后台一面面经
全程1个小时45分钟,但是面试官没开摄像头,人属于是麻了,讲八股讲到后面嘴巴都干了
有些问题因为没录到,我只能靠我自己的回答来推断问题了X
自我介绍
项目
-
你选一个项目给我讲下背景把。
选了其中一个项目,里面主要是用了docker,mq和xxl-job定时任务框架,所以接下来项目这块主要问的就是这些了
-
有了解docker的底层原理吗?(没有,只说了个虚拟化的概念)
-
你觉得利用虚拟机和docker有什么区别呢?
-
有自己弄过镜像吗,要怎么做一个镜像?
算法(非手撕)
int f(x)
{
int count = 0;
while(x) {
x = x & (x - 1);
}
return count;
}
- 问这个算法在做什么
f(9999) = ?
(人麻了,为什么要用手算啊)
八股
全方位拷打
计网
- HTTP的状态码
- HTTP是怎么样传输数据的?(一开始答了TCP分片)
- (感觉没答到面试官想的意思,于是他换了个问法)如果我从网上利用多线程来下载一个数据,那是要怎么下载呢?(这里答了说TCP有序传输的一个特点)【没了解过断点续传和多线程下载TAT】
- 那如果我只要下载数据的前面十个字节呢?(没答出来)
- (上面那个没答出来,问了这个)HTTP常见的头部有些什么呢?(顺势想到了Content-Length这个东西,笑死,后来查了下才发现这是响应头的内容)【面试官应该是想引导我考虑到
Range
头,可惜没了解过捏】 - HTTP怎么保持长连接呢?(
Connection:Keep-Alive
) - HTTPS是什么?他解决了HTTP什么问题?
- HTTPS怎么建立连接的?
- HTTPS怎么保证建立的信道是安全的?(数字证书 + CA)
MySQL
-
如何优化慢查询语句?
-
介绍下索引?底层是啥?
-
为什么不用二叉树?为什么不用AVL树?
-
(联合索引)下面怎么走的索引?
-- 联合索引(a, b, c) select * from t where a = 2 and b = 2; select * from t where b = 2 and c = 2; select * from t where a > 2 and b = 2;
-
事务的隔离级别?这些隔离级别是怎么保证数据的一致性的?默认的事务隔离级别是啥?(MVCC)(吟唱了MVCC的底层原理)
-
怎么更改事务的隔离级别?
Java
- Hashmap的底层?为什么链表要变成红黑树?为什么不用平衡二叉树?(这里把BST和AVL记错了)
- HashTable了解吗?
- Hashmap能保证并发安全吗?ConcurrentHashMap是怎么保证的?
- CAS算法具体内容是啥?他怎么保证数据原子性(这个没答出来)
JVM
- GC?怎么样去识别垃圾?
- GC Root?
- 回收的方法?
- 分代收集算法里面具体是怎么回收的?
- 为什么要用分代收集呢?
- FULL gc怎么去清理的?(引导之后答了个STW)
- 怎么来区分对象是属于哪个代的?
Redis
- Zset的底层实现?
算法(手撕)30mins
请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。 假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。
假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。
购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。 假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。
输入格式
输入的第一行包含一个整数n,表示购票指令的数量。
第二行包含n个整数,每个整数p在1到5之间,表示要购入的票数,相邻的两个数之间使用一个空格分隔。
输出格式
输出n行,每行对应一条指令的处理结果。
对于购票指令p,输出p张车票的编号,按从小到大排序。
输出n行,每行对应一条指令的处理结果。
对于购票指令p,输出p张车票的编号,按从小到大排序。
样例输入
4
2 5 4 2 4 2 5 4 2
样例输出
1 2
6 7 8 9 10
11 12 13 14
3 4
样例说明
购2张票,得到座位1、2。
购5张票,得到座位6至10。
购4张票,得到座位11至14。
购2张票,得到座位3、4。
购2张票,得到座位1、2。
购5张票,得到座位6至10。
购4张票,得到座位11至14。
购2张票,得到座位3、4。
评测用例规模与约定
对于所有评测用例,1 ≤ n ≤ 100,所有购票数量之和不超过100。 对于所有评测用例,1 ≤ n ≤ 100,所有购票数量之和不超过100。
场景题
淦居然还有。。。。
- 我现在有十万个乱序数据,我要找出前100个最大的
- 给了十亿个qq号,设计一个数据结构来管理
反问
- base?深圳和上海
- 评价:基础蛮扎实,docker和场景那个找前k个最大还有加强