Skip to content
Go back

奥克兰腾讯光子工作室群 - 三面 - 面试总结

Published:  at  09:10 AM

Table of contents

Open Table of contents

💬 一、基础知识类问题

1. 工作中常用的数据结构有哪些?为什么好用?

总结: 后端开发中,选用合适的数据结构能极大提高系统性能和代码简洁性。


2. 哈希表怎么实现?哈希冲突怎么解决?

面试官补充问


3. 跳表是什么?


4. 如何判断海量数据中 key 是否存在?

使用布隆过滤器(Bloom Filter)


5. 后端与前端在职责和要求层面上的区别?


6. 为什么说后端稳定是第一位?

后端系统支撑了整个业务逻辑和数据流转,一旦出错,后果严重如下单失败、支付出错,因此稳定性(如幂等、限流、熔断、超时控制、数据一致性)始终是后端开发的首要目标。


7. 常见的消息队列有哪些?

消息队列特点和场景
Kafka高吞吐、分区顺序、大数据处理
RabbitMQAMQP 协议、灵活路由、可靠性高
RocketMQ支持事务、延迟消息、分布式一致性
Redis Stream轻量级、低延迟、已使用 Redis 场景

8. 常见的分布式框架有哪些?

方向框架
微服务Spring Cloud, Dubbo, gRPC
数据存储HDFS, Ceph, TiDB, HBase
协调注册Zookeeper, Etcd, Nacos
任务调度ElasticJob, XXL-Job
中间件Kafka, Redis, RocketMQ
容器编排Kubernetes

9. MySQL 分布式场景下,如何保证可用性与一致性?


10. Socket 编程介绍 / 阻塞与非阻塞的区别


11. 网络协议 QUIC 是什么?


💻 二、算法题汇总


✅ 题目 1:合并两个有序数组

题目: 给定两个有序数组,返回合并后的有序数组。

思路:

代码:

def merge_sorted_arrays(a, b):
    i = j = 0
    res = []

    while i < len(a) and j < len(b):
        res.append(a[i] if a[i] < b[j] else b[j])
        i += a[i] < b[j]
        j += a[i] >= b[j]

    return res + a[i:] + b[j:]

面试官追问:


✅ 题目 2:用只返回 0/1 的函数 f() 生成等概率的 0~7

思路:

代码:

def f():
    return random.randint(0, 1)

def rand_0_7():
    return (f() << 2) | (f() << 1) | f()

Suggest Changes

Previous Post
奥克兰腾讯光子工作室群 - 一面 - 面试总结
Next Post
奥克兰腾讯光子工作室群 - 二面 - 面试总结