1. 面试方向统计

1.1. 腾讯

  • 算法题
  • 理论基础
    • 语言
      • PHP
      • Swoole
    • 操作系统
      • 内存管理
        • 虚拟内存
      • 进程管理
      • 文件系统
    • 网络编程
      • TCP/IP 协议
        • 三次握手
        • 四次挥手
        • TIME_WAIT
      • HTTP 协议
        • HTTP协议返回码
        • HTTP方法
        • HTTPS 详细过程
      • 网络安全
        • WEB 安全
          • XSS
          • CSRF
          • SQL注入
    • 后端技术
      • MySQL
        • 事务
        • 索引
        • binlog, redolog
        • 读写分离
        • 分库分表
      • Redis
        • 使用场景
        • 实现分布式锁
      • 消息队列
        • RabbitMQ
      • 分布式系统
        • CAP 理论
        • BASE 理论
        • 限流
        • 熔断
        • 一致性选举算法
        • 主从架构
        • 集群架构
        • 异地多活
        • 负载均衡
        • 分层架构
        • 微服务
      • docker
  • 深挖项目
    • 找到项目的亮点处
    • 找到项目复杂处
    • 量化指标, 提高了接口的性能
    • 赋能整个团队. 开发工具提高了整体的工作效率, 创造了价值
    • 难点, 挑战, 职责, 核心技术
    • 项目瓶颈在哪? 就这个项目来说, 如何实现高可用
    • 在上次工作中,哪些项目最有成就感,最有挑战?
    • 最有挑战的一个工作,遇到的困难,采取了什么方式,取得了什么结果
    • 遇到的最难的项目?难在哪里?怎么解决的?得到了什么收获?
    • 基础的一点的技术接触过什么?感觉枯燥么?碰到什么困难?举一个最难的例子
    • 举例两个做的比较好的项目
  • 其它
    • 未来发展方向
    • 最近遇到的挫折
    • 选择公司考虑什么
    • (2) 用3个词形容自己优点?3个词形容自己缺点?
    • (2) 选择公司考虑什么
    • 个人爱好
    • 访问哪些技术网站?
    • 是否有自己的博文?
    • 看哪些技术方面的书?
    • 比别人有什么优势, 和解决问题的方式
    • 短时间学习一个语言和做一个项目你会怎么做?
    • 对腾讯了解多少,你最看重腾讯的什么?

1.1.1. 面试题统计

  • 项目
    • 问项目
    • 项目的系统架构画一下
    • 如果用户量上涨怎么优化
    • Redis 在项目中的作用
    • 平时怎么调试代码, 如果代码多了呢
  • Swoole
    • swoole 特性
    • swoole 是什么
    • go 协程和 swoole 协程什么区别
    • swoole 协程的原理?(遇到阻塞时引发 php 栈和 c 栈的切换,细节可以参考下我的文章)
  • Laravel
    • 使用了哪些设计模式?
    • 为什么使用 Laravel
  • 算法

    • 两个单向链表求和: 例如2->3->1->5,和3->6,结果返回2->3->5->1
    • 两个排序数组找中位数
    • 算数字 n 的平方根
    • 设计一个算法, 抽奖次数越多中奖概率就越高
    • 跳台阶
    • 数组中奇数个元素
    • 一栋楼有n层,不知道鸡蛋从第几层扔下去会碎,用最少的次数找出刚好会碎的楼层
    • 动态规划与贪心有什么区别
    • paxos 算法是什么
    • 怎么判断一个图是否有环
    • 背包问题
    • 贝叶斯的概率学原理
    • 分词算法
    • 连续整数求和(Leetcode 829 题), 要求时间复杂度小于 O(N)
    • 一个无序数组找其子序列构成的和最大, 要求子序列中的元素在原数组中两两都不相邻
    • 缺失的第一个正数(leetcode 41 题)
    • 有 N 枚棋子, 每个人一次可以拿到 1到M个, 谁拿完后棋子的数据为0谁就获胜. 现在有1000颗棋子, 每次最多拿8个, A先拿, 那么A有必胜的拿法吗? 第一个人拿完后剩余棋子的数量是8的倍数就必赢, 否则就必输
    • 给一棵二叉树的根节点, 现在有这个二叉树的部分节点, 要查这些节点的公共祖先.
    • 二重背包问题
    • 给定数组按数字出现的频率由高到低排列数字
    • 100亿手机号去重
    • 二叉树打印所有和为某值的路径
    • 数字中查找第k大
    • 旋转数组查找元素
    • 链表是否有环, 有环如何求环的长度
    • 小明去书店买4种参考书,每种书价格为3,5,7,11,他有70元钱,在保证每本书至少买一本的情况下画完全部钱有多少种买法。
    • 约瑟夫环
    • 两个数组中只存在一个不同元素, 怎么找出来
    • (2) 快速排序
    • 用非冒泡的两种方法对数组降序排序
    • 用 O(n) 时间复杂度对数组降序排列
    • 8个金币, 7真1假, 用天平几次可以称出?
    • 十进制转二进制
    • 数组实现队列, 用最小时间复杂度获取当前队列中最大值
    • 500w个手机号和用户信息, 如何设计数据库
    • 10亿个数, 内存512m, 如何找所有重复整数
    • (2) 各种排序算法在哪些场景使用? 如归并排序, 快排, 冒泡排序
    • 是否了解大小端, 代码如何实现大小端
    • (2) 如何判断两个链表是否有公共节点? 有哪些可能异常?
    • 一个文件有许多英文单词, 如何统计出频率最高的10个?
    • 如何在大数组中找到从小到第一亿个
    • 无序数组找k大, 时间复杂度, 为什么是这样的复杂度? 有没有其它办法? 计数排序空间复杂度有没有办法优化?
    • (2) 1T文件中每行存一个单词, 使用内存 256M 的机器如何统计频率最高的10个单词?
    • 代码:“1223345677881”,字符串去重?时间复杂度?
    • 图的广度优先遍历
    • 二叉树广度优先遍历
    • leetcode 两数之和
    • 字符串移除奇数位置字符
    • 字节转16进制
    • 括号匹配
    • 扑克牌1到13,第一张放到牌组最后,第二张翻开移出,第三张放到牌组最后,第四张翻开移出依次类推,最后给出翻开牌的序列,求原始牌组的序列。
    • 一个链表,把它保留头尾部分复制出来和原链表共同组成一个数据结构能用来干嘛
    • 3l绝对规整杯子和5l绝对规整杯子量4l水,我用类似栈来回倒,人家最后和我说杯子可以倾斜这样更简单😂
    • 150g大米,2g砝码和7g砝码,几次能把大米分成70g和80g
    • 一颗二叉树返回某一层节点数目
    • 寻找最佳路径
    • 寻找最长回文
    • 在1个10G大小的文件中,存储的都是int型的数据,如何在内存使用小于8M的情况下进行排序
    • 查找一个字符串中最长的无重复字串
    • 在一个横向和纵向都是递增的有界二维坐标轴中,如何快速判断某个数是否存在于这个二维坐标中
    • 前序遍历的递归和非递归
    • 给定前序中序构建二叉树
    • 无序数组如何查找两数之和
    • 给一个只包含+-*/和正整数的字符串 求表达式的值。
    • 一亿个数找出top 100
    • 一个数组 找出所有和为n的种类数目
    • 给定两个稀疏矩阵 求乘法 要优化后的
    • (2) 归并排序适用场景, 时间复杂度
    • 快排时间复杂度? 最坏情况? 时间复杂度?
    • 判断一个数是否对称
    • 问了一个10G大文件里面存放许多很长的数字要怎么找出重复率最高的那个数字
    • 红黑树的概念
    • 红黑树的平均查找复杂度?
    • 10亿数排序(重复数只需要输出一次)
    • 桶排序
    • RSA 算法
    • 平衡二叉树和红黑树的区别
    • B树和B+树区别
    • 实现一个队列, 除了 pop 和 push 外, 加一个 pop 出指定元素, 复杂度在O(1)级
    • 建堆的过程
    • 最小栈:在O(1)的时间复杂度内返回栈的最小元素
    • 数组中除了两个数,其他树都出现偶数次,找出这两个只出现一次的数
    • 二叉树转双端链表
    • 两个升序数组求并集
    • 村民中有一些狼人,每个人都可以分辨普通村民和狼人,但是不知道自己是不是狼人。狼人都是善良的,如果知道了自己是狼人就会离开村子。大家因为害怕,互相不交流,到第6天村里走的一个狼人也不剩了,请问第2天走了几个狼人。
    • 你有两根粗细不均的香,每根完全烧完都需要1小时,如何确定一段15分钟或45分钟的时间?
    • 一个N阶的魔方,6个面都涂上了油漆,问没有涂上油漆的小立方体有几个?
    • 你有一个5升的水桶和一个3升的水桶,怎样才能量出4升的水?
    • 有1000杯水,其中有一杯有毒,喝了有毒的水的小白鼠一天后毙命,小白鼠数量充足,请问如何用最少的小白鼠和最少的时间找出有毒的那杯水?
    • 数字转中文
    • 括号匹配
    • 单向链表的归并排序
    • 链表加法
    • 1g 大小文件,里面每行是最大 16k 的单词,限制内存 1m,统计单词频率最多的 100 个单词
    • 100 位带小数的大数字的减法
    • 全排列, 进阶: 给数组长度n, 求第k行的排列
    • 一个屋子有100栈灯,序号分别是1-100,有打开或关闭两种状态,然后有100个人,序号分别是1-100,然后每个人都会进到屋子里面,且每个人都会把自己序号倍数的等执行一次操作(打开或关闭),问最终会有几盏灯打开?
    • 一个排序数组,可能有重复元素,要求返回不重复元素个数,并且数组前几位去重。例如1,2,2,3,3,4 --》要求前四位是1,2,3,4后面无所谓,返回4.一个台阶每次最多能走一个,或走两个,问有多少中走法。
    • 一个台阶每次最多能走一个,或走两个,问有多少中走法。
    • 52张扑克牌,去掉大小王,问我三次摸到同一花色的概率。
    • 反转一个句子当中的单词的顺序
    • 一个二叉树上求两个节点之间路径长度的最大值,说出具体的思路。
    • lru缓存变形题。(带有过期时间的lru缓存)
    • 数组中右边第一个比他大元素(时间复杂度O(N))
    • 栈所有可能弹出序列
    • 三数之和,如果是四数之和如何做
    • 快排优化
    • O(n) 时间, 1个变量实现洗牌算法
    • 不用变量交换两个整形?
  • 架构

    • (2) 微服务的特点 (优缺点), 如何实现服务发现和负载均衡
    • 均衡负载算法有哪些
    • 服务发现是怎么实现的
    • 熔断是怎么实现的 (熔断原理? 令牌桶? 熔断的三个状态关系?)
    • 熔断会影响性能吗? 有遇到过线上发生熔断吗? 不加会怎么样?
    • id生成器是怎么实现的, 如何实现全局递增
    • 分布式一致性如何博阿正, 存在延迟不一致如何处理, 数据延迟如何处理
    • 在面对未知的流量暴增, 可以预先怎么处理
    • 如何限流,限流算法,对于ddos攻击怎么处理
    • RPC相对于传统的API调用的优点? 如何实现幂等性?
    • 有哪些分布式组件是你熟悉的? 简单聊一聊
    • cap 是指什么? mysql 满足 cap 中的哪些?
    • 分布式锁有哪些方式可以实现? 各有什么优缺点?
    • 什么事一致性 hash ? 自己实现一致性 hash, 会用什么数据结构?
    • 配置中心有哪些选项?apollo 的架构?怎么无感实现已加载数据更新?
    • 服务容灾是如何做的?
    • 你们工作中采用的微服务是如何部署的?
  • 服务器
    • 服务器性能问题如何定位
    • gdb怎么切换线程
    • 查看 CPU 的命令和磁盘IO的命令
    • linux 总, 一个打开的文件可以被另一个进程删除吗?
    • (2) linux 基本命令是否熟悉
    • log目录有大量log文件, 找出最近10天未访问的文件
    • (2) 系统cpu使用压力过高,如何排查或哪些进程造成原因。Top能检查到哪些关键参数。如何按照进程使用内存或cpu占用时间进行排序。
    • 平时逛哪些论坛, 研究哪些算法
    • 有无遇到自己写的程序造成内存占用过高情况。
    • 怎么查看Linux服务器的负载,及判断哪些操作引起的负载过高
    • 查看内存, cpu占用命令?
    • 端口占用命令?
  • 操作系统
    • 操作系统管理哪些内容?
    • 内存管理方法有哪些? 空闲地址链表概念?
    • (2) 段式, 页式, 段页式含义及优缺点?
    • 页面置换算法有哪些? LRU如何实现?
    • 线程状态有哪些?
    • (5) 进程间通信方式有哪些
    • 一个可执行程序如何加载到内存中成为一个进程
    • 守护进程是什么,怎么实现
    • 共享内存是怎么实现的
    • Linux如何实现定时任务
    • 操作系统载入内存方式,指令地址如何指向?
  • 设计模式
    • 工厂模式, 使用场景
    • (2) 手写单例模式
    • 对于单例,你知道哪些实现方法?
    • 实现一个懒加载单例
    • 单例中双重校验锁为什么要双重校验?
    • 装饰器和代理的区别
    • 工厂方法和抽象工厂的区别

results matching ""

    No results matching ""