字节跳动客户端提前批面经整理

本来想整理全一点的,以后有时间或者秋招的时候再按知识点类别整理一遍。

这次提前批,因为想着没准备好,16号最后也没报字节的提前批

7.6字节跳动提前批-客户端开发一面面经

https://www.nowcoder.com/discuss/447585?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

1.自我介绍

2.编程,leetcode03

网络

3.http和https的区别

4.https建立连接的过程

5.https抓包工具是如何实现的

语言

6.java的equals()和==的区别

7.java常用的容器有哪些

8.java的多态和继承是如何实现的

9.java的内存管理机制

10.java多线程中的锁你用过哪些

操作系统

11.进程间通信哪几种方式

12.线程间通信有哪几种方式

13.虚拟内存,共享内存和常驻内存的区别

14.虚拟地址,逻辑地址和物理地址的区别

15.逻辑地址如何转成物理地址

16.死锁发生的条件

7.6字节跳动客户端一二面凉经

https://www.nowcoder.com/discuss/447637?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

一面 45min

1.问项目

2.java都有哪些锁

3.synchronized锁升级

4.CountDownLatch原理

5.介绍ReentrantLock

6.死锁的情况 举例说明

7.进程线程

8.进程间通信方式

9.手撕DCL单例

10.剑指Offer24 链表反转

二面 50min

1.自我介绍

2.问项目

3.InnoDB与MyISAM区别

4.java代码到执行发生了 什么

5.双亲委派模型

6.Excutor,线程池

7.手写一个线程池,嗯????

8.LeetCode 146 LRU缓存

总结:二面的编程题卡了好久,最气的是我之前还刷过,最后磕磕绊绊只写出来个了大概。看到面试官面如死灰,基本是凉了。

7.12【2021校招提前批】字节跳动-客户端开发面经链接:https://www.nowcoder.com/discuss/446833?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

final关键字的作用

进程和线程的定义,进程可以操作哪些资源,进程的内存控制

TCP和UDP,区别、联系和使用场景

HTTPs相关,说了一大堆(把RSA+GCM+SHA256的流程都讲了一遍),但是忘了说数字证书,被小哥提示了

HTTP响应状态码

有没有接触过网络编程

编程题:二叉树和为target的路径:定义从根节点开始、叶子节点结束为一条路径,返回所有和为target的路径。(DFS+Backtrack)

二面

Java内存管理(程序计数器、Java栈、本地方法栈、Java堆、方法区那一套)

Java GC算法介绍,适用场景,四种引用

内存对齐???(没有听说过)

数组和链表的联系和区别,适用场景

遍历二维数组,按行遍历和按列遍历效率是否不同(只知道不同,不知道为什么)

面试结束后查的资料:

二维数组的内存地址是连续的,当前行的尾与下一行的头相邻

现代计算机,在CPU与内存之间还有一种存储机制,那就是CPU缓存(cache)。CPU缓存的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。

访问数组元素时,CPU不会每次只从内存中读取一个元素,而是读取一个区域的元素。假设二维数组的大小为(10 x 10),访问第一个元素时,CPU也会读取它的相邻元素,因为这个数组比较小,CPU一次就可以把所有元素缓存,因此无论是按行访问数组还是按列访问数组,CPU访问主存的数量都相同。随着数组元素越来越多,CPU缓存一次只能读取数组不到一行的数据,因此按列访问元素时每访问一个元素都要访问内存,因此速度就会慢很多。

数据库的索引是什么?有哪些常见的索引数据结构(b树,b+树)

通过实现Runnable接口和继承Thread类创建线程的不同之处

单线程i++和多线程i++结果的差异和原因

算法题: 给定一个字符串,如“abdkfcefbikbaabbsdsbb”,删除其中所有连续的"ab",最后的结果没有连续的"ab"。

三面

SQL题:有A和B两张表,A表中有学生的信息,包括了学生的班级id,B表中有班级的信息,包括班级的id和班级的名称,要求查询给定班级名称的所有学生的信息。一个嵌套查询搞定(当然级联查询也可行)

Java的GC

7.12字节跳动C++客户端一面凉经

https://www.nowcoder.com/discuss/450380?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

4.static关键字

8.TCP如何实现可靠性

补充一个问题:写出线程中生产者消费者模型代码

10.手撕代码:从无序数组中找到右边第一个大的数(与leetcode 739 每日体温类似)

7.12

字节跳动客户端提前批一面

https://www.nowcoder.com/discuss/450458?type=post&order=hot&pos=&page=0&channel=2000&source_id=search_post

3、进程和线程的区别

5、htttp服务器是怎样解析数据的?

6、死锁的概念

7、进程通信方式

9、逻辑题 关于运煤的

10、简化路径(算法提)

11、二叉树的右视图(算法题)

7.11

字节跳动秋招提前批 C++客户端 面经

https://www.nowcoder.com/discuss/449859?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

1.进程和线程的区别,有了进程为什么还要有线程

2.进程的资源、线程的资源

3.多线程怎么同步,多线程竞争怎么解决

4.mysql有哪几种锁

5.一次完整的http请求过程

6.http和https区别,哪个更快

7.https加密过程

8.DNS域名解析过程,用到了什么协议(UDP),最后获得IP地址就能怎样呢(就可以识别在网络中的机器)

9.TCP和UDP区别以及各自使用场景,UDP不可靠的话那为什么咱们现在视频这么流畅,是依靠什么(应用层来保障)

算法:判断两个链表是否相交

二面

  1. mysql事务的原则

  2. 哈希表怎么解决冲突

  3. nosql非关系型数据库了解多少

  4. mysql查询优化的方法

  5. 索引为什么查询更快

  6. 有哪些索引类型

  7. 算法:查找二叉树中两个节点的最近公共祖先

7.10字节跳动商业部Java后端一面凉面经
https://www.nowcoder.com/discuss/449769?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

讲一下项目吧

项目中有什么亮点(讲了一下redis分布式锁)

ZooKeeper原理(当时用zookeeper是为了大致了解一下怎么用,底层根本不清楚)

Redis的I/O多路复用机制了解吗(不了解)

Redis的基本数据结构

Redis基本数据结构中HashMap底层实现是什么

如果让你来实现一个HashMap你会怎么实现

HashMap什么情况下扩容

HashMap插入和查找的时间复杂度

项目中的RabbitMQ是怎么用的(我快速的讲了一遍,结果面试官说他没听清。。。。)

简单讲一下ConcurrentHashMap的底层原理吧

ConcurrentHashMap除了用到了CAS,有没有用到synchronized

如果让你自己实现一个简单的线程池该怎么做

问了一下网络编程相关的知识(我说网络编程相关的不太懂)

如果让你构建一个客户端-服务器通信的话,该调用哪些API(不是刚说了网络编程的不太懂吗。。。)

TCP头部什么结构(我记得IP结构记得HTTP结构就是不记得TCP的结构)

端口号在哪里

MySQL索引,B树、B+树,为什么B+树适合范围查询,B树又有什么优点(讲了一下区别,以及在MySQL和MongoDB中两个是怎么作为索引的)

MySQL如何进行调优,有哪些常见的优化手段

HDFS基本原理讲一下(忘得差不多了)

编程题:字符串转换为整数,leetcode第67题(做的过程中慌得一批,有一个地方把&&写成了||半天没找到)

7.10字节跳动抖音客户端c++123面面经链接:https://www.nowcoder.com/discuss/449514?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

自我介绍
讲个印象深刻的项目
数组和链表优缺点
栈和队列区别,应用场景
栈实现队列
哈希表原理
哪些函数可以用作哈希函数
tcp udp应用
进程线程
什么是锁,自旋锁互斥锁区别
手撕数组A去掉数组B存在的元素
为什么要用set

set的实现,查找速度

手撕旋转矩阵90度
时间,空间复杂度是多少?
swap函数的实现

7.10字节跳动 客户端开发秋招一面

链接:https://www.nowcoder.com/discuss/449673?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

1.讲一下操作系统的调度算法,他们之间的区别

2.讲一下进程和线程之间的区别,进程之间的通信方式,线程之间的通信方式

3.讲一下mysql的索引结构,为什么实用B+树会查询更快

4.讲一下TCP和UDP的区别,应用场景,如何使UDP达到和TCP相同的效果

5.HTTP和TCP的区别

6.结构体中定义的变量,占用多少内存

typedef struct {     
    char a;     
    short b;     
    int c;     
    char d;     
    char e[3]; 
} 
一个字节对齐,占用多少内存 四个字节对齐,占用多少内存

​ 7.实现一个带有push和pop操作的栈,让其能够在常数时间查询到最大元素

​ 8.字符串反转,输入"a.bc.d"输出"d.bc.a"

字节跳动提前批 客户端 二面凉经 C++

https://www.nowcoder.com/discuss/446444?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

一面感觉挺好的,面试官小哥哥超nice

进程与线程的区别

有哪几种线程间通信方式

进程地址空间分为哪几个部分

.text .data .bss 堆 栈 共享映射区这些块

两个线程访问一个局部变量,如何保证这个局部变量不会在访问还未结束时就被销毁

手写代码:
在给定整数数组中找到没有出现的最小正整数(要求时间复杂度O(n),空间复杂度O(1))
这个题在leetcode刷过,说了下思路,然后把代码写出来,几个测试样例都通过了。

二面凉经:
进程间通信方式,回答管道、信号、共享映射、socket
管道的适用场景(不太会,回答是用在父子进程)
堆和栈的访问效率哪一个高
栈上面存放了哪些内容,回答局部变量,还有寄存器
寄存器和内存的区别
类类型没有数据成员,定义该类型的变量占几个字节,回答是1个,面试官又问这1个字节的内容是什么,不会。
内存管理方式,回答段式管理和页式管理
线程池原理,这个完全不了解
四种类型强制转换
设计模式题,给出策略模式的一个应用场景

手写代码:
求给定字符串的最长无重复子字符串,这个说了思路,写出来代码,面试官不太满意,说有优化的空间,让我面试结束后再研究一下。

转岗后一面

进程与线程的区别
死锁的出现原因
OSI七层参考模型与各层代表协议
TCP三次握手过程,包括两次握手可能出现的问题
读写锁的实现原理
IPV6概念
http与https的区别

手写代码:
在给定字符串中删除字符b和相邻的a、c字符

输出二叉树的左视图能看到的节点

二面

进程和线程的区别
缺页中断,包括中断处理过程和页面置换算法
二叉搜索树与平衡二叉搜索树的区别,各自的特点和查找效率
线程共享和独享的资源
可否用过多线程,回答学习过线程池

场景题:
一千万个七位十进制数放在磁盘上,只有1MB的内存,如何对其排序?这个题把我问懵了,得计算每个元素如何在内存中存放,存放的空间大小,多路归并的路数,每次调入内存的元素多少。最后在面试官引导下勉强回答出来。

手写代码:
判断一颗二叉树是否为镜像二叉树

7.8字节跳动客户端日常实习通过面经

https://www.nowcoder.com/discuss/448486?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

  • 计算机网络:tcp/ip协议组,网络层次,常见的协议和用途,为什么是三次握手和四次挥手

  • 操作系统:进程间如何通信,死锁的形成条件,预防方法和破解方法

  • 知道哪些垃圾回收算法,jvm的内存模型等等

  • 数据结构和手撕代码:一道链表反转;一道在两个有序数组里找中位数,这道属于hard,但是本身不难。

7.8字节跳动客户端二面面经

https://www.nowcoder.com/discuss/448571?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

问的都是操作系统问题
页置换
页面调度算法
lru算法如何实现(懵逼)
cpu调度算法(没答完整)
死锁
如何避免死锁
如何处理死锁
银行家算法

代码题,如何判断一颗树是否是完全二叉树。(突然忘了什么是完全二叉树,还好面试小哥哥提醒了我)

7.6字节跳动提前批C++客户端两面凉经

https://www.nowcoder.com/discuss/447616?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

一面:50分钟左右,都是基础问题,有些问题记不清了!!!

​ 1.自我介绍

​ 4.进程、线程的区别?

​ 5.进程间通信方式?

​ 6.线程间通信方式?

​ 7.输入一个网址,整个过程都用到了哪些协议?

​ 8.TCP、UDP区别?

​ 9.TCP怎样进行流量控制?

​ 算法题:输出二叉树的所有路径:https://leetcode-cn.com/problems/binary-tree-paths/

​ 二面:1小时16分钟,想起来的就这些。。。

​ 1.自我介绍;

​ 2.问项目相关。

​ 3.用过哪些设计模式?观察者模式、单例模式

​ 4.能写一下观察者模式的关键内容吗?没写出来。。

​ 5.那写一下单例模式?写了懒汉式,能写线程安全的吗?答:对多线程了解不多。。

​ 6.说一下多态?

​ 8.进程间的各种通信方式都有什么特点?

​ 9.共享内存内部是怎样实现的?共享内存有什么优势?

​ 10.HTTP与HTTPS的区别?

​ 11.HTTPS加密传输过程?

​ 12.私钥在传输过程中被截取怎么办?

​ 13.说一下TCP传输时的慢开始?

​ 算法题:

​ 二叉树的层次遍历,看到题目内心窃喜,刚开始写,面试官说一面写过二叉树了,换个题目😪

​ Top-K问题:包含N个整数的数组,输出前K个较大的数。

​ 面试官:先说思路

​ 本菜鸡:最直观的就是先排序,然后遍历。

​ 面试官:那排序的话,你准备怎么排?

​ 本菜鸡:那得看输入数组的特性,如果大体有序,插排可能快些,若完全乱序,当然是快排效率最高。

​ 面试官:那这个还能再优化吗?

​ 本菜鸡:能不能利用归并?

​ 面试官:归并排序时间复杂度是多少?

​ 本菜鸡:nlogn

​ 面试官:那快排呢?

​ 本菜鸡:nlogn,最坏情况下为n^2

​ 面试官:那这没有优化啊?

​ 本菜鸡:那不知道怎么优化了😔

​ 面试官:那你就写个快排,然后输出前K个较大的数吧。

​ 本菜鸡:好的。

7.2【C++客户端】字节跳动提前批一、二、三面(三面已过)

https://www.nowcoder.com/discuss/446446?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

一面,7月2日晚上7:30,50分钟左右。

3.多线程同步。

4.进程通信。

5.TCP拥塞控制。

算法题:二叉树最近公共祖先(进阶),比常规的二叉树查最近公共祖先,这个要求查询多次,每次查询不同的两个节点。

二面,7月3号中午11:30,60分钟左右。

6.五层网络模型各有些什么协议。

算法题:给一个只有数字的字符串,分成五个数每个数小于600,输出所有分法。

三面,7月7日上午10:30,40分钟左右。

6.手撕unique_ptr。

7.编程题,把类似html的文件解析成一颗树。

7.3字节Android客户端一面面经

https://www.nowcoder.com/discuss/446477?type=post&order=hot&pos=&page=1&channel=2000&source_id=search_post

对于我的话,他提到了以下问题

讲一下Java中的List;

数组和链表的区别;

多线程里的关键字,volatile和synchronized;

TCP/IP四层协议(浅谈而已);

讲几个进程调度算法(我只说到了FCFS和RR,惭愧😂);

编程题:用一个数组或链表实现先进先出队列

#内推##提前批##字节跳动##面经#
全部评论
mark
1 回复 分享
发布于 2020-07-18 20:41
马,感谢
1 回复 分享
发布于 2020-07-19 02:46
mark,楼主一定可以的~
点赞 回复 分享
发布于 2020-07-18 20:30
多谢楼主
点赞 回复 分享
发布于 2020-07-18 21:07
mark
点赞 回复 分享
发布于 2020-07-19 09:38
mark
点赞 回复 分享
发布于 2020-07-19 10:47
马,感谢整理
点赞 回复 分享
发布于 2020-07-19 11:03
大大,字节客户端是不是比较容易进啊?
点赞 回复 分享
发布于 2020-07-19 11:47
mark,多谢楼主整理
点赞 回复 分享
发布于 2020-07-19 15:47
mark
点赞 回复 分享
发布于 2020-07-24 21:22
mark
点赞 回复 分享
发布于 2020-07-25 09:16
我不想去面试了,好多我都不会
点赞 回复 分享
发布于 2020-07-25 10:22

相关推荐

有趣的牛油果开挂了:最近这个阶段收到些杂七杂八的短信是真的烦
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
24 235 评论
分享
牛客网
牛客企业服务