欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 字节一面:后端开发

字节一面:后端开发

2025/9/20 19:55:20 来源:https://blog.csdn.net/XYL147250/article/details/147646970  浏览:    关键词:字节一面:后端开发

前言

这是我字节一面的回忆录,可能有些不全。

由于博主是Java面试Go岗,操作系统和计网问的还是比较多。

个人感觉字节很喜欢追问,博主被追问拷打的找不到北了,总结还是学的太浅了。

面试官给我的建议:再更深挖一些。

如果感觉对你有帮助,请点点关注点点赞吧,谢谢你!

1 八股

1.1 操作系统

线程和进程讲解

线程如何通信(区分进程的通信)

线程通信

  进程通信

虚拟地址如何找到物理地址

1.2 计算机网络

IP报文组成(格式)(区分TCP和UDP报文)

IP报文(最后其实还有数据)(下面展示的是头部信息)

TCP头部格式

UDP头部

子网掩码的作用(举例说明)(有待补充,我有点忘了,去学习一下在补充)

子网掩码不能单独存在,它必须结合IP地址一起使用。IP地址我们都知道是计算机在网络内的唯一标识,而子网掩码顾名思义是用于划分子网的。

子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

tcp的可靠性(我当时回答的三次握手和四次挥手的实现方式)

四次挥手为什么一定是四次(其实就是中间两次挥手能不能合一)

1.3 Java相关内容

我的另外的博客要细致一些

Java集合相关面试题-CSDN博客

JVM相关面试题-CSDN博客

Java后端线程面试笔记-CSDN博客

volatile关键字的作用(追问:为什么可以实现线程间的可见性)

泛型的作用 (追问:除了通用之外还有其他的作用嘛)

其他作用

synchronized关键字的作用 (追问:可以重入嘛)

更细致的看:Java后端线程面试笔记-CSDN博客   的2.1部分

重量级不可以,在轻量级和偏向锁里面都可以重入

注解的工作原理 (追问:编译时生效嘛)

Java中的注解(Annotation)是一种为代码添加元数据的机制,本身不会直接影响代码逻辑,但可以通过特定的处理工具(如编译器、框架或自定义处理器)来触发行为。以下是其工作原理的详细说明:

多线程开发如何实现

创建线程的方法:四种

Java后端线程面试笔记-CSDN博客 1.3、3

讲一下多态

1.4 数据库

 常用的redis的数据结构  (追问:底层实现:String的底层)

大厂面试-redis-CSDN博客

追问:底层实现:String的底层

redis的原子性如何实现(追问:可以回滚嘛,多条redis如何实现原子性,可以回滚嘛)

单条命令的原子性

可以回滚吗:不可以
多条redis如何实现原子性

可以回滚,如果内部命令执行失败就会回滚

但是在Lua里面要先预判可以成功吗,预判失败直接不执行

如果Lua在执行中某个命令失败了,那么成功的不能回滚,失败的不在执行

mysql事务的四大特征

大厂面试:MySQL篇_mysql 大厂面试题-CSDN博客

2. 算法题

2.1 k等分多边形

题目描述(数据不是很记得了)

给定一个固定的多边形,给定坐标,多边形数据如下:

现在输入k,将多边形边长分成等长的k段

求出k1到k8的坐标

思路

0.求出多边形周长len

1.找到每个点分的长度:例如第二个点就是:length=(len/k)*(i-1)

2.从第一个(T1)点出发,往下个点走:例如 T1-t2

3.如果|T1-T2|>=length,说明这个点在这条直线上,直接可以求出 坐标

4.如果|T1-T2|<length,说明这个点不在在这条直线上,length-=|T1-T2|,在往下一个点走T2-T3

5.重复2-4,但是为啥补找到上一个分界点,往下走呢,有精度损失。

例子

输入:13

输出

代码

import java.util.Scanner;public class Main {public static void main(String[] args) {//多边形点的坐标,把第一个点还要加入最后,方便计算double[][] T={{10,20},{20,20},{20,30},{40,30},{40,20},{50,20},{50,5},{10,5},{10,20}};//计算多边形的边长,初始化节点double len=0;Node[] nodes=new Node[T.length-1];for (int i = 0; i < T.length-1; i++) {int index=T[i][0]==T[i+1][0]?1:0;nodes[i]=new Node(T[i][0],T[i][1],index==1?'y':'x',T[i][index]>T[i+1][index]?'-':'+',Math.abs(T[i][index]-T[i+1][index]));len+=nodes[i].len;}//输入KScanner in=new Scanner(System.in);int k=in.nextInt();double kLen=len/k;//计算每一份for(int i=1;i<=k;i++){//每个点离起点T1的位置double length=kLen*(i-1);double x=0,y=0;//记录每个分界点的坐标for(int j=0;j<nodes.length;j++){if(nodes[j].len>=length){//在这条线上if(nodes[j].c=='x'){x=nodes[j].x+(nodes[j].d=='+'?length:-length);y=nodes[j].y;}else{x=nodes[j].x;y=nodes[j].y+(nodes[j].d=='+'?length:-length);}break;}else{length-=nodes[j].len;}}System.out.println("K"+i+"("+x+","+y+")");}}
}
class Node{public double x;public double y;public char c;// 'x'  'y'public char d;//+,-public double len;//与下个节点的长度public Node() {}public Node(double x, double y, char c, char d, double len) {this.x = x;this.y = y;this.c = c;this.d = d;this.len = len;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词