字节一面凉经

写在前面的话

面的是字节基础架构后端,首先不得不说字节的速度还是很快的,不管是一面的安排还是流程结果的通知,但个人感觉这次面试学到的东西没有美团一面学到的多,也可能是我的个人博客项目介绍的简单了,面试官基本没问项目相关的问题,简单问了一下项目中用到的技术和基础,之后就是常规的八股了。实在是最后的算法题太菜了,没做出来,所以说刷题很重要!!!还有美团的一面(现在还在流程中),等我后面整理一下再发。
在这里有几个点大家可以注意一下:

  1. 自我介绍时不要说项目的具体,说个大概就可以了
  2. 面试之前一定要针对性的看一下岗位需求里而且项目用到的内容(尽量看深一点),可以引导面试官问
  3. 刷题也是面字节很重要的一部分,先找字节对应的常考题型多做做,面试前培养一下手感
  4. 感觉我面试的部门对基础还是很看重的,所以在看完八股的时候可以对自己疑惑的部分往深挖一下(确保自己的时间进度没问题的情况下,首要任务肯定还是先过一遍,然后再深挖)

面试中的问题

项目的网址有吗
还没上线,计划6月份上线

对redis的理解,项目中的使用
后端和数据库之间的缓存,存取速度比从数据库快。

redis的hash结构,以及博客中如何具体使用

直接说了具体用法,应该在前面先介绍hash的结构,然后再说如何使用。

hash的底层数据结构
说了ziplist和hashtable,介绍了一下ziplist,hashtable说了数组加链表/红黑树。

有没有用集群
说了一下自己没用,但是说明了自己之前实操过集群的使用。

缓存雪崩
同一时间多个key失效,导致大量请求直接达到数据库上。有两种场景:过期时间设置的一样;redis宕机。解决方法分别说了一下。

如何理解数据库的事务
概念介绍(ACID);具体用innodb实现,有redologo和undologo,底层实现没让说。

B+树了解吗
自平衡的二叉树,属于聚集索引。

mysql为什么用B+树
搜索速度快,属于聚簇索引,索引和数据放在一起,加载索引时按页加载,直接把数据也加载进去了。不需要二次回表。

内存回收机制
判断对象是否存活,引用计数和可达性分析,具体原理和缺陷;3中清理算法,标记清除/复制/整理,具体原理;实现的收集器,serial系列,parnew,parallel,CMS,G1,各自对应的情况和特点;java的分区,新生代、老年代,suvivor、edon、old,

进程,线程,协程的区别(这一块需要再看看,没说全)
概念上讲,进程最大,线程次之,协程是轻量级线程;从内存角度看;通信方式;耗费的资源。

虚拟内存的理解(需要再看八股完善)
首先介绍了虚拟内存是什么;和计算机的位数有关;虚拟内存和物理内存的转化用MMU。

通过虚拟内存可以让程序可以拥有超过系统物理内存大小的可用内存空间。
另外,虚拟内存为每个进程提供了一个一致的、私有的地址空间,它让每个进程产生了一种自己在独享主存的错觉(每个进程拥有一片连续完整的内存空间)。

分页和分段(需要再看八股完善)
分页的概念,分段的概念。

页式管理 :把主存分为大小相等且固定的一页一页的形式,页较小,相对相比于块式管理的划分力度更大,提高了内存利用率,减少了碎片。页式管理通过页表对应逻辑地址和物理地址。
段式管理 : 页式管理虽然提高了内存利用率,但是页式管理其中的页实际并无任何实际意义。 段式管理把主存分为一段段的,段是有实际意义的,每个段定义了一组逻辑信息,例如,有主程序段 MAIN、子程序段 X、数据段 D 及栈段 S 等。 段式管理通过段表对应逻辑地址和物理地址。
简单来说:页是物理单位,段是逻辑单位。分页可以有效提高内存利用率,分段可以更好满足用户需求。

浏览器输入网址,从网络层面描述过程:
dns域名解析,http协议,SSL加密协议等转化协议,tcp协议分成不同段,IP协议,路由选择协议。

tcp和udp的区别
速度方面;可靠性方面;场景

tcp保证稳定的手段
校序重流拥。

tcp的三次握手和四次挥手(需要复习一下)
可以完善一下每次发送的具体ACK,SYN,seq

四次握手的timewaited的原因
消除对网络的影响;确保双方都发送完整信息

哪些排序方法是稳定的
插入,归并,堆(不稳定)

相对1g的数字排序,有哪些方法:桶排序,具体的原理忘了

针对上面的问题,如果内存很小不够全部放怎么处理:采用缓冲池,用bufferedreader读取,每次读取固定字节数的内容。

一道算法题:最长递增子序列,没做出来,执着于在O(n)内解决了,其实不难,后面看了一下力扣原题复杂度需要O(n^2),归根到底还是自己最近没怎么刷题,确实有些忘了。

你了解字节的基础架构是做什么吗?
这里回答的太菜了,面试之前忘了看招聘要求了,只在最开始看了一下,根据自己的看法回答了一下。但是有一个更优解:可以将问题反抛给面试官,比如说这个其实也是我想问的问题,因为我从招聘信息里只能看到大概,然后我认为巴拉巴拉(简单说看法),想问一下具体是做什么的呢?

#字节面试##实习##面经##Java##字节跳动##后端开发#
全部评论
老哥你知道自己的面评吗 全程答了多久呀
2 回复
分享
发布于 2022-05-04 04:37
老哥已经感谢信了吗,有发问卷吗
点赞 回复
分享
发布于 2022-04-22 16:35
联易融
校招火热招聘中
官网直投
加油
点赞 回复
分享
发布于 2022-04-24 00:23
算法最快nlogn吧? 贪心+二分
点赞 回复
分享
发布于 2022-06-21 08:16

相关推荐

3 39 评论
分享
牛客网
牛客企业服务