找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 123|回复: 0

北京快手科技有限公司一面

[复制链接]

1288

主题

0

回帖

4008

积分

论坛元老

积分
4008
发表于 2026-6-2 22:36:24 | 显示全部楼层 |阅读模式
基本信息
  • 形式:采用半结构化技术面试形式。面试包含自我介绍、手撕代码、基础知识问答、项目经历深挖等环节。
  • 时长:约45-60分钟。
  • 氛围:面试官专业度高,会针对技术基础进行深入提问。

面试流程
网申/笔试通过 → 一面通知 → 参加视频面试 → 自我介绍 → 手撕代码 → 基础知识问答 → 项目深挖 → 反问环节 → 退场。
面试问题及参考回答
一、手撕代码(必考)

1. 请写一个函数判断一个字符串是否是回文串。
参考回答:(Python)
python



def is_palindrome(s: str) -> bool:    left, right = 0, len(s) - 1    while left < right:        if s[left != s[right:            return False        left += 1        right -= 1    return True
时间复杂度O(n),空间复杂度O(1)。

2. 手写快速排序。
参考回答:(讲解分治思想,边写代码边讲解)
python



def quick_sort(arr, left, right):    if left >= right:        return    pivot = partition(arr, left, right)    quick_sort(arr, left, pivot - 1)    quick_sort(arr, pivot + 1, right)

3. 实现一个LRU缓存机制。
参考回答:使用哈希表+双向链表实现,get和put操作时间复杂度O(1)。

二、计算机网络

4. TCP三次握手的过程是怎样的?
参考回答:
  • 第一次握手:客户端发送SYN包到服务器,进入SYN_SENT状态
  • 第二次握手:服务器回复SYN+ACK包,进入SYN_RCVD状态
  • 第三次握手:客户端发送ACK包确认,双方进入ESTABLISHED状态

目的是同步序列号,确认双方收发能力正常。

5. HTTP和HTTPS的区别是什么?
参考回答:
  • HTTPS是在HTTP基础上加入SSL/TLS加密层,数据传输更安全
  • HTTPS默认端口443,HTTP默认端口80
  • HTTPS需要CA证书,HTTP不需要
  • HTTPS可以防止中间人攻击和数据窃听


6. 从输入URL到页面加载完成,中间发生了什么?
参考回答:
  • DNS解析:将域名解析为IP地址
  • TCP连接:三次握手建立连接
  • 发送HTTP请求:向服务器发送请求
  • 服务器处理请求:返回响应数据
  • 浏览器解析渲染:解析HTML、CSS、JS,渲染页面
  • 关闭连接


三、操作系统

7. 进程和线程的区别是什么?
参考回答:
  • 进程是资源分配的最小单位,线程是CPU调度的最小单位
  • 一个进程可以包含多个线程,线程共享进程的地址空间和资源
  • 进程间通信复杂(管道、消息队列、共享内存),线程间通信简单但需要同步(锁、信号量)
  • 进程创建和销毁开销大,线程开销小


8. 什么是死锁?如何避免?
参考回答:死锁是指两个或多个进程互相等待对方释放资源,导致都无法继续执行。死锁的四个必要条件:互斥、持有并等待、不可剥夺、循环等待。避免死锁的方法:破坏四个必要条件之一,如按顺序申请资源、使用超时机制、银行家算法等。

9. 什么是虚拟内存?
参考回答:虚拟内存是一种内存管理技术,将物理内存和磁盘空间组合,为每个进程提供连续的虚拟地址空间。优点:可以运行大于物理内存的程序,隔离进程地址空间,提高内存利用率。通过页表将虚拟地址映射到物理地址。

四、数据库

10. 什么是索引?索引的优缺点是什么?
参考回答:索引是数据库加速查询的数据结构。优点:加快查询速度;缺点:占用额外存储空间,降低插入、更新、删除的效率。常见索引类型有B+树索引、哈希索引等。

11. MySQL的InnoDB存储引擎有什么特点?
参考回答:InnoDB是MySQL默认的存储引擎,特点包括:
  • 支持事务(ACID)
  • 支持行级锁,并发性能好
  • 支持外键约束
  • 使用B+树作为索引结构
  • 支持MVCC多版本并发控制


五、Java基础(Java岗位)

12. HashMap的底层实现原理?
参考回答:HashMap底层采用数组+链表+红黑树结构。默认初始容量16,负载因子0.75。当链表长度大于8且数组长度大于64时,链表转红黑树,查询复杂度从O(n)降为O(log n)。数组长度是2的n次幂,方便位运算计算哈希桶位置。

13. 什么是线程池?线程池的核心参数有哪些?
参考回答:线程池是管理线程的工具,避免频繁创建销毁线程。核心参数包括:
  • corePoolSize:核心线程数
  • maximumPoolSize:最大线程数
  • keepAliveTime:空闲线程存活时间
  • workQueue:阻塞队列
  • threadFactory:线程工厂
  • handler:拒绝策略


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|知行公社 ( 粤ICP备2020096454号 )

GMT+8, 2026-9-6 00:11 , Processed in 0.052961 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表