字节一面:后端开发

前言

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

由于博主是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;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/79072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速掌握大语言模型+向量数据库_RAG实现

一、前言 结合前面掌握的vLLM部署Qwen7B模型、通过Embedding模型&#xff08;bdg-large-zh模型&#xff09;提取高质量作文内容并预先存储到Milvus向量数据库中&#xff0c;我们很容易实现RAG方案进一步提高写作内容的生成质量。 本篇要实现的目标是&#xff1a;通过FlaskAPI…

【FreeRTOS-列表和列表项】

参照正点原子以及以下gitee笔记整理本博客&#xff0c;并将实验结果附在文末。 https://gitee.com/xrbin/FreeRTOS_learning/tree/master 一、列表和列表项的简介(熟悉) 1、什么是列表 答&#xff1a;列表是FreeRTOS中的一个数据结构&#xff0c;概念上和链表有点类似&#…

【c++】【STL】queue详解

目录 queue的作用什么是容器适配器queue的接口构造函数emptysizefrontback queue类的实现 queue的作用 queue是stl库提供的一种容器适配器&#xff0c;也就是我们数据结构中学到的队列&#xff0c;是非常常用的数据结构&#xff0c;特点是遵循LILO&#xff08;last in last ou…

【一】 基本概念与应用领域【数字图像处理】

考纲 文章目录 1 概念2005甄题【名词解释】2008、2012甄题【名词解释】可考题【简答题】可考题【简答题】 2 应用领域【了解】2.1 伽马射线成像【核医学影像】☆2.2 X射线成像2.3 紫外波段成像2.4 可见光和红外波段成像2.5 微波波段成像2.6 无线电波段成像2.7 电子显微镜成像2…

RAG技术完全指南(一):检索增强生成原理与LLM对比分析

RAG技术完全指南&#xff08;一&#xff09;&#xff1a;检索增强生成原理与LLM对比分析 文章目录 RAG技术完全指南&#xff08;一&#xff09;&#xff1a;检索增强生成原理与LLM对比分析1. RAG 简介2. 核心思想3. 工作流程3.1 数据预处理&#xff08;索引构建&#xff09;3.2…

对计网考研中的信道、传输时延、传播时延的理解

对计网考研中的信道、传输时延、传播时延的理解 在学习数据链路层流量控制和可靠传输那一节的三个协议的最大信道利用率时产生的疑惑 情景&#xff1a; 假如A主机和B主机通过集线器连接&#xff0c;A和集线器是光纤连接&#xff0c;B和集线器也是光纤连接&#xff0c;A给B发…

【2025五一数学建模竞赛C题】社交媒体平台用户分析问题|建模过程+完整代码论文全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的美赛O奖、国赛国一的数学建模团队&#xff0c;我们将为你带来本次数学建模竞赛的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解析&#xff0c…

使用 Spring Boot Actuator 实现应用实时监控

1. 引言 1.1 什么是 Spring Boot Actuator Spring Boot Actuator 是 Spring Boot 提供的一组生产级功能模块,用于帮助开发者对 Spring Boot 应用进行监控和管理。它提供了一系列 REST API 端点(Endpoints),可以获取应用程序的运行状态、健康检查、度量指标等信息。 这些…

2025MathorCup数学应用挑战赛B题

目录 模型建立与求解 1.问题一的模型建立与求解 1.1 搬迁补偿模型设计 1.2 住户是否搬迁的应对策略与分析 1.3 定量讨论 2.问题二的模型建立与求解 2.1 搬迁方案模型的优化介绍 2.2 模型的评估 2.3 模型结果 3.问题三的模型建立与求解 3.1 拐点存在性分析模型的建立 3.2 模型的…

西门子数字化研发设计制造一体化规划案例P87(87页PPT)(文末有下载方式)

资料解读&#xff1a;《西门子数字化研发设计制造一体化规划案例》 详细资料请看本解读文章的最后内容。 该文档围绕西门子为企业打造的智能化制造研发工艺生产一体化平台规划方案展开&#xff0c;全面阐述了从业务现状分析到项目实施及案例分享的整个过程。 业务现状与需求分析…

stm32基础001(串口)

文章目录 通信的基本概念串行通信和并行通信单工&#xff0c;半双工和全双工串口的硬件连接 stm32的串口原理图CPU的芯片手册stm32串口的库函数实现通过串口实现printf函数使用中断实现串口的接收 通信的基本概念 串行通信和并行通信 串行通信一个方向只有一个数据通道&#x…

【验证技能】文档要求和好文档注意点

项目文档 产品场景分析&#xff1b; 产品规格需求&#xff1a;OR&#xff1b; 项目设计需求&#xff1a;DR&#xff1b; 业务文档&#xff1a;学发材料&#xff1b; 计划 项目执行计划&#xff0c;设计计划&#xff0c;验证计划&#xff0c;一~四级计划&#xff1b; 一级计…

使用 CarrierWave 通过 AWS S3上传文件到阿里云 OSS

虽然阿里云 OSS 与 AWS S3 兼容&#xff0c;但需要使用阿里云的特定端点进行配置。CarrierWave 是一个流行的 Ruby 文件上传库&#xff0c;可以方便地与 AWS S3 集成。以下是配置和使用方法&#xff1a; 1. 安装必要的 gem 首先&#xff0c;在 Gemfile 中添加以下 gem&#x…

上位机知识篇---流水线执行

文章目录 前言前言 本文简单介绍了流水线. 基本概念 流水线(Pipeline) 是一种通过将任务分解为多个子任务(阶段),并让不同子任务并行执行以提高效率的技术。其灵感来源于工业流水线,每个阶段专注于特定操作,多任务在不同阶段重叠执行,从而提升整体吞吐率(Throughput)…

第三部分:赋予网页灵魂 —— JavaScript(下)

目录 7 DOM 操作&#xff1a;控制网页的"智能面板7.1 小例子&#xff1a;点击按钮时改变段落文字&#xff0c;根据用户输入改变图片7.2 练习&#xff1a;实现一个简单的 Tab 切换效果 8 事件处理&#xff1a;响应用户的"指令"8.1 小例子&#xff1a;实现点击按钮…

芯片软错误概率探究:基于汽车芯片安全设计视角

摘要&#xff1a; 本文深入剖析了芯片软错误概率问题&#xff0c;结合 AEC-Q100 与 IEC61508 标准&#xff0c;以 130 纳米工艺 1Mbit RAM 芯片为例阐述其软错误概率&#xff0c;探讨汽车芯片安全等级划分及软错误对汽车关键系统的影响&#xff0c;分析先进工艺下软错误变化趋势…

嵌入式AI还是一片蓝海

发现其实还是挺多人关注嵌入式和人工智能交叉领域的&#xff0c;随便一个问题&#xff0c;浏览量就27万了&#xff0c;但是这方面的内容确实少得可怜……所以干脆我自己来补点干货。 推荐一本最近很热门的新书——《边缘人工智能&#xff1a;用嵌入式机器学习解决现实问题》。 …

Linux 怎么安装 Oracle Java 8

在 Linux 系统上安装 Oracle Java 8 的步骤如下&#xff1a; 1. 下载 Oracle Java 8 访问 Oracle 官方网站的 Java 下载页面&#xff1a; 下载链接&#xff1a;Oracle Java 8 下载页面选择适合 Linux x64 的安装包&#xff08;通常是 .tar.gz 格式&#xff09;。需要登录 Or…

nginx配置集群服务器中的tcp负载均衡器

文章目录 前言1. Ubuntu下nginx安装2. nginx的tcp负载配置 前言 假设一台机器支持两万的并发量&#xff0c;现在我们需要保证八万的并发量。首先想到的是升级服务器的配置&#xff0c;比如提高 CPU 执行频率&#xff0c;加大内存等提高机器的物理性能来解决此问题。但是单台机…

【音视频】RTMP流媒体服务器搭建、推流拉流

服务器&#xff1a;SRS(Simple RTMP Server&#xff0c;⽀持RTMP、HTTP-FLV&#xff0c;HLS) 推流端&#xff1a;ffmpeg OBS 拉流端&#xff1a;ffplay VLC srs播放器 1 安装和测试srs流媒体服务器 1.1 安装srs流媒体服务器 srs官⽹&#xff1a;https://github.com/ossrs/…