当前位置: 首页 > 面试经验 >

腾讯3.21腾讯云后台一面面经

优质
小牛编辑
79浏览
2024-03-22

腾讯3.21腾讯云后台一面面经

全程1个小时45分钟,但是面试官没开摄像头,人属于是麻了,讲八股讲到后面嘴巴都干了

有些问题因为没录到,我只能靠我自己的回答来推断问题了X

自我介绍

项目

  1. 你选一个项目给我讲下背景把。

    选了其中一个项目,里面主要是用了docker,mq和xxl-job定时任务框架,所以接下来项目这块主要问的就是这些了

  2. 有了解docker的底层原理吗?(没有,只说了个虚拟化的概念)

  3. 你觉得利用虚拟机和docker有什么区别呢?

  4. 有自己弄过镜像吗,要怎么做一个镜像?

算法(非手撕)

int f(x)
{
	int count = 0;
	while(x) {
		x = x & (x - 1);
	}
    return count;
}
  1. 问这个算法在做什么
  2. f(9999) = ?(人麻了,为什么要用手算啊)

八股

全方位拷打

计网

  1. HTTP的状态码
  2. HTTP是怎么样传输数据的?(一开始答了TCP分片)
  3. (感觉没答到面试官想的意思,于是他换了个问法)如果我从网上利用多线程来下载一个数据,那是要怎么下载呢?(这里答了说TCP有序传输的一个特点)【没了解过断点续传和多线程下载TAT】
  4. 那如果我只要下载数据的前面十个字节呢?(没答出来)
  5. (上面那个没答出来,问了这个)HTTP常见的头部有些什么呢?(顺势想到了Content-Length这个东西,笑死,后来查了下才发现这是响应头的内容)【面试官应该是想引导我考虑到Range头,可惜没了解过捏】
  6. HTTP怎么保持长连接呢?(Connection:Keep-Alive
  7. HTTPS是什么?他解决了HTTP什么问题?
  8. HTTPS怎么建立连接的?
  9. HTTPS怎么保证建立的信道是安全的?(数字证书 + CA)

MySQL

  1. 如何优化慢查询语句?

  2. 介绍下索引?底层是啥?

  3. 为什么不用二叉树?为什么不用AVL树?

  4. (联合索引)下面怎么走的索引?

    -- 联合索引(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;
    
  5. 事务的隔离级别?这些隔离级别是怎么保证数据的一致性的?默认的事务隔离级别是啥?(MVCC)(吟唱了MVCC的底层原理)

  6. 怎么更改事务的隔离级别?

Java

  1. Hashmap的底层?为什么链表要变成红黑树?为什么不用平衡二叉树?(这里把BST和AVL记错了)
  2. HashTable了解吗?
  3. Hashmap能保证并发安全吗?ConcurrentHashMap是怎么保证的?
  4. CAS算法具体内容是啥?他怎么保证数据原子性(这个没答出来)

JVM

  1. GC?怎么样去识别垃圾?
  2. GC Root?
  3. 回收的方法?
  4. 分代收集算法里面具体是怎么回收的?
  5. 为什么要用分代收集呢?
  6. FULL gc怎么去清理的?(引导之后答了个STW)
  7. 怎么来区分对象是属于哪个代的?

Redis

  1. 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。

场景题

淦居然还有。。。。

  1. 我现在有十万个乱序数据,我要找出前100个最大的
  2. 给了十亿个qq号,设计一个数据结构来管理

反问

  1. base?深圳和上海
  2. 评价:基础蛮扎实,docker和场景那个找前k个最大还有加强
#腾讯##面经#
 类似资料: