-
Notifications
You must be signed in to change notification settings - Fork 89
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
79 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,79 @@ | ||
字节跳动 后端开发-技术中台一二三面面经 | ||
|
||
前情提要:21届,辣鸡本科,项目巨水,啥都不会 | ||
|
||
------------------------------------------------------- | ||
一面+二面(连着2h左右): | ||
1.问项目 | ||
2.vector的扩容怎么实现的 | ||
3.迭代器删除所用的函数 | ||
4.vector用迭代器删除后迭代器会不会失效 | ||
5.什么情况适合用vector什么情况适合用list | ||
6.c++5种迭代器都是啥 | ||
7.讲下const | ||
8.const int *p和int *const p区别 | ||
9.不同位置的static变量的区别 | ||
10.static一般什么时候用 | ||
11.static编译器层面的实现(??????) | ||
share_ptr | ||
12.如果要自己设计一个share_ptr,要包含哪些方法 | ||
13.new和malloc区别 | ||
14.malloc底层实现 | ||
15.c++程序的内存分布 | ||
16.介绍c++多态 | ||
17.虚函数的底层实现 | ||
18.构造函数可不可以是虚函数 | ||
19.为什么构造函数不能是虚函数 | ||
20.析构函数可不可以是虚函数 | ||
21.虚函数表在什么时候初始化 | ||
22.tcp报文的首部有哪些字段 | ||
23.https的加密 | ||
24.怎么保持登录状态(sessioncookie) | ||
25.session的底层实现 | ||
26.虚拟内存共享内存驻留内存 | ||
27.静态链接和动态链接 | ||
28.使索引生效,sql查询该语句怎么写 | ||
29.用过什么中间件(无) | ||
30.堆排时间复杂度,稳不稳定 | ||
31.快排稳不稳定 | ||
|
||
二面时的智(数)力(学)题 | ||
和面试官抛硬币,一人一次,面试官先抛,先抛到正面朝上的胜,问面试官获胜的概率 | ||
有一个随机数生成器,生成0的概率是p,生成1的概率是1-p,要求用这个生成器实现等概率生成0和1 | ||
写代码 | ||
------------------------------------------------------------------------------ | ||
一面 | ||
给一串数字串,将数字串转化为ip地址,给出所有可能结果(简单dfs) | ||
bst权值第k小 | ||
------------------------------------------------------------------------------- | ||
二面 | ||
给一段未缩进的xml代码,输出代码缩进的结果,标签内无内容不缩进,如 | ||
<a><b></b><cc>ccc</cc></a> | ||
输出 | ||
<a> | ||
<b></b> | ||
<cc> | ||
ccc | ||
</cc> | ||
</a> | ||
|
||
--------------------------------------------------------------------------- | ||
三面(30min) | ||
开场先是几分钟的闲聊,然后正式开始: | ||
面试官:计算机基础都擅长哪些? | ||
我:操作系统...吧 | ||
面试官:那来问问你操作系统 | ||
我:(?大意了,该说数据结构的) | ||
物理内存和虚拟内存区别 | ||
物理地址和虚拟地址区别 | ||
为什么要用虚拟地址 | ||
如果只有2gb内存,有一个4gb大小的程序,怎么运行? | ||
(接上一题)如果不使用虚拟内存,能不能运行成功?为什么能运行成功,怎么做到的? | ||
介绍一下协程 | ||
僵尸进程是什么 | ||
文件描述符是什么 | ||
有一个等概率生成0-4的随机数生成器,用这个生成器实现等概率生成0-6 | ||
|
||
代码题: | ||
给一个字符串,求最多包含k种字符的最长子串的长度 | ||
给一棵二叉树,一个集合,集合内是一些二叉树上的点,求集合内所有点的lca |