字节实习二面

news2024/11/15 5:41:21

网络体系结构分层(7、5、4)

答:

OSI七层网络体系结构:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

TCP/IP四层网络体系结构:物理层、网际层、传输层、应用层

TCP/IP五层网络体系结构:物理层、数据链路层、网络层、传输层、应用层

TCP、UDP协议属于哪一层,HTTP、HTTPS呢

TCP、UDP属于传输层的协议

HTTP、HTTPS属于应用层

TCP三次握手和四次挥手

三次握手:

  1. 客户端向服务端发起一个SYN包,其中携带有客户端生成的随机编号X
  2. 服务端接受到客户端的SYN包后会返回一个ACK确认包(X+1),同时返回一个SYN的包,服务端生成的自己的随机编号Y
  3. 客户端接收到服务端的ACK后随即返回一个ACK确认包(Y+1),随即客户端进入链接建立成功状态,服务端在接收到ACK包后随即进入链接成功状态

四次挥手:

  1. 当客户端向服务端发送的数据完成后客户端会主动请求断开链接,此时客户端会发送一个FIN包表明需要断开客户端向服务端的数据传输通道
  2. 服务端接收到FIN包后返回一个ACK包,表明知道客户端准备断开向服务端的数据传输
  3. 客户端接收到ACK包后随即断开向服务端的数据传输
  4. 服务端向客户端传输的数据发送完毕后,主动向客户端发送一个FIN包,表明服务端也将断开链接
  5. 客户端接收到后返回一个ACK包随即进入time_wait状态,服务端接收到ACK确认包后即断开
  6. 如果在time_wait时间内客户端没有再接收到数据,则客户端也进入断开链接的状态

HTTP和HTTPS区别

  • HTTP是明文传输的,HTTPS是基于SSL协议实现的对数据加密传输形式的HTTP。

  • HTTP默认使用80端口,HTTPS默认使用443端口

  • HTTP传输效率比较高,HTTPS传输效率较低

  • HTTP安全性较低,HTTPS安全性较高

  • HTTP不需要证书,HTTPS需要额外证书

HTTPS加密流程

  • 浏览器将自身支持的对称加密协议发送给服务端
  • 服务端接选出自身同样支持的对称加密协议,并且将自己的非对称加密的公钥一起返回
  • 客户端生成该对称加密协议的密钥,使用服务端的公钥进行加密并返回服务端
  • 服务端使用私钥进行解密,获得对称加密的密钥
  • 随后双方使用对称加密进行数据加解密

进程和线程区别

  • 进程是操作系统中资源分配的最小单位,线程是操作系统中CPU调度执行的最小单位
  • 线程属于进程
  • 线程与线程之间的数据共享是很容易的,进程与进程之间的数据共享比较困难
  • 一个线程崩溃后很容易影响到其他线程,进程崩溃后很难影响到其他进程

进程的状态及状态切换

进程的状态主要有:创建态、就绪态、运行态、阻塞态、挂起态

就绪态➡运行态:进程获得CPU的执行权

运行态➡就绪态:进程时间片到时间释放掉CPU

运行态➡阻塞态:进程需要进行IO或者进程等待的资源未到达

运行态➡挂起态:系统内存空间不足将部分进程挂起到磁盘

阻塞态➡挂起态:同上

同步和互斥的概念(没答好)

互斥:进程之间共享临界资源,需要保证各个进程对资源的互斥的访问临界资源,是一种间接制约的关系

同步:进程之间存在某种时序关系,例如进程A需要在进程B之后执行,是一种直接制约关系

并发、并行、异步的区别

并发:同一时间有多个进程在运行,进程处于交替执行的状态

并行:在多处理器的情况下,多个进程在同一刻由不同的CPU进行执行

异步:异步是和同步相对应的,同步是顺序执行而异步中,某个事件不需要等待其他事件是否执行完。

多线程是实现异步的方式。

java实现多线程的方法

  • 继承Thread类
  • 实现Runable接口
  • 实现Callable接口
  • 使用线程池

各种方式的区别(没答好)

因为java中没有多继承所以通过继承Thread来实现多线程的话这个类就没有办法继承其他类

使用Runable接口的话相当于将多线程任务和多线程创建和执行分离开了,并且继承Runable接口还可以避免单继承的问题

Callable接口类似Runable只是Callable接口可以定义带返回值的方法

线程池通过提前创建线程和保留部分线程来避免重复创建销毁线程的开销,提高了运行效率

线程池

线程池底层有一堆存活线程以及一个任务队列,创建线程池时有几个重要参数:核心线程数、最大线程数、存活时间、任务队列、拒绝策略

当我们向线程池提交任务时,线程池会检测当前是否有空闲线程,如果有则直接执行。否者将任务放入任务队列中,等待空闲线程执行。如果任务队列满了的话则会检测当前线程数是否达到了最大线程数,如果没有则创建一个线程来执行,否者执行拒绝策略。

线程池拒绝策略有哪些(忘了第二个)

  1. 直接抛出异常
  2. 由调用者来执行
  3. 丢弃任务队列中最老的任务
  4. 直接丢弃任务

Spring、SpringMVC、SpringBoot的区别和联系

PS:答得不好,当时脑子有点乱说的我自己都尴尬,其实是答道了关键的但是一直在重复说。

Spring是SpringMVC、SpringBoot的基本框架,它主要提供IOC和AOP两种功能。

SpringMVC是基于Spring的一个WEB层框架

SpringBoot是整合了Spring、SpringMVC以及其他的一些框架的一个框架,它其中内嵌有Tomcat服务器,使得开发Web应用更方便,屏蔽掉了以前Spring、SpringMVC框架很多的配置文件。

Spring Bean是否有并发问题

Bean是有并发问题的,但我们平常使用的Controller、Service这些Bean,主要是直接调用它的方法没有数据共享发生。

解决办法:Synchronized等同步方式

JVM的内存分布

运行时数据区:线程共享的方法区、堆,线程不共享的虚拟机栈、本地方法栈、程序计数器

堆和栈的区别

栈中主要存放基本数据类型,以及引用数据类型的引用

常用的垃圾收集器

CMS、G1

CMS基于标记清楚和标记整理

G1是基于Region的

Redis ZSET的数据结构,如何实现跳表

ZSet底层有两种数据结构:ZipList和跳表

当元素少时使用压缩列表

img

算法:二分查找的迭代、递归写法

​ 检测链表是否有环,有环则返回入环点

​ 两条链表返回是否相交,如果相交返回交点

​ 两个循环链表是否相交,如果相交返回交点

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

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

相关文章

ShopWind 多商户商城更新,Vue 3 前后端分离,页面自定义装修

本次为 V4 版本更新,新系统架构(技术栈)vue3 vite (打包编译工具) Composition API(组合式 API setup) Element Plus vueRouter (路由) 第三方组件:axios (数据请求) wangeditor(编辑器),都是通过接口访问数据,页面效果更佳了…

【强烈建议收藏:MySQL面试必问系列之并发事务锁专题】

一.知识回顾 上节课我们一起学习了MySQL面试必问系列之事务,没有学习的同学可以看一下上一篇文章,肯定对你会有帮助,学习过的同学肯定知道,上节课我们留了一个小尾巴,这个小尾巴是什么呢?就是没有详细展开…

MPI ubuntu安装,mpicc,mpicxx,mpif90的区别

介绍 MPI是并行计算的一个支持库,支持对C、C、fortran语言进行并行计算。 安装基础环境 ubuntu进行gcc/g/gfortran的安装: gcc: ubuntu下自带gcc编译器。可以通过gcc -v命令来查看是否安装。 g: sudo apt-get install buil…

【Python学习笔记】第二十四节 Python 正则表达式

一、正则表达式简介正则表达式(regular expression)是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特…

Day07-flex布局

文章目录弹性布局一 简介二 弹性容器案例-让多个div排成一行三 容器项目的对齐方式案例1-justify-content(主轴对齐)案例2-flex-wrap(换行)案例3-align-items(侧轴对齐)案例4-align-self(项目垂直对齐)案例5-flex-direction(改变轴向)案例6-弹性布局应用四 弹性项目-flex属性案…

离开央视的欧阳夏丹,在艺考培训机构当老师,是金子到哪都会发光

说起中央电视台,大家都认为这是主持界的殿堂,但凡能在这里工作的人,都是出类拔萃的人才。在中央电视台,确实也出现过很多人才,比如说主持界的康辉、撒贝宁、朱军、周涛等等。 除了以上这些主持人,欧阳夏丹也…

【高效办公】批量生成固定模板的文件夹名称

老师让你按照他的要求生成每位学生的文件夹,你是学委,让你马上完成该任务,但你又不想是手动一个一个码字,因此聪明的你就看到了本篇文章啦!!! 虽说一个人懒惰,并不是好的事情。 但这个似乎合情合理啊~ 然后,就动手想办法,一开始就真的打算码字了。。 思路 在实际开…

机器学习笔记之狄利克雷过程(二)基于标量参数作用的推导过程

机器学习笔记之狄利克雷过程——基于标量参数作用的推导过程引言回顾:狄利克雷过程——基本介绍狄利克雷过程——定义小插曲:狄利克雷分布的简单性质关于标量参数作用的推导过程引言 上一节以高斯混合模型为引,简单介绍了狄利克雷过程(Diric…

虹科分享| 浅谈HK-Edgility边缘计算平台

上周,我们推出了虹科新品HK-Edgility边缘计算平台以及uCPE解决方案。本篇文章我们再来谈一谈到底什么是边缘计算?为什么需要边缘计算?边缘计算和云计算有什么关系?HK-Edgility边缘计算平台将为您带来什么?一、边缘计算…

【C++】vector实现(深浅拷贝详细理解,迭代器失效)

🍅可以先去这个网站看一下个个函数的功能 本文不再详细介绍,vector的底层还是顺序表,我讲的很详细,建议没学过顺序表的先预习一下(主页搜索顺序表,还有配套习题) C网站关于vector的接口函数信息…

雅思积累(十八)同义替换

同义替换:sophisticated —— complicatedspecific —— detailed —— particularquantity —— wealth —— volume —— numbersettle —— schedule —— arrange —— fixswift —— rapid —— fast —— quickexpertise —— professional knowledge —— sk…

【云原生kubernetes】k8s中job与cronjob使用详解

一、前言 job,顾名思义就是任务,job的概念在很多框架中都有,而且实际业务场景中也使用非常广泛,比如大家熟悉的hadoop,客户端可以向集群提交一个job,然后集群根据一定的调度策略来处理这个job; …

【2023unity游戏制作-mango的冒险】-6.关卡设计

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:unity游戏制作 ⭐mango的冒险关卡设计⭐ 文章目录⭐mango的冒险关卡设计⭐👨‍&#…

软件测试之jira

Jira 1. Jira 概述 JIRA 是澳大利亚 Atlassian 公司开发的一款优秀的问题跟踪管理软件工具,可以对各种类型的问题进行跟踪管理,包括缺陷、任务、需求、改进等。JIRA采用J2EE技术,能够跨平台部署。它正被广泛的开源软件组织,以及…

更新 TKK 失败,请检查网络连接。谷歌翻译 translation插件不能用解决办法 亲测有效

谷歌翻译无法使用,谷歌回应解释是,谷歌翻译使用率过低,所以选择停止服务。网上也有说法,指出根本原因为,提供API接口的googleapis被墙,这导致js文件和字体资源无法加载。 这里提供两种解决办法 方案一 修…

枯燥迷茫?先来玩玩这些经典的计算机视觉项目

B站|公众号:啥都会一点的研究生 颜色检测 从检测颜色到绿幕应用(用自定义视频或背景替换绿色背景),再到简单的照片编辑软件,构建颜色识别器是计算机视觉入门的一个很棒的项目 项目地址:https://github.…

PostgresSQL存储过程和触发器

在次之前首先要搞清楚一个概念 存储过程和触发器,是在基础sql语句之后的另一门语言,类似小学的加减乘除和奥数的关系,他们虽然都是数学,但是运算复杂度和定向思维都有了很大程度的不同 这篇文章不打算把存储过程和触发器事无巨细…

SAP 详细解析SCC4

事务代码:SCC4,选择一个客户端,点击进入,如图: 一、客户端角色 客户控制:客户的角色(生产性,测试,...) 此属性表示 R/3 系统中的客户端角色。其中可能包括…

简单分析Linux虚拟化KVM-Qemu之vhost-net

说明: KVM版本:5.9.1 QEMU版本:5.0.0 工具:Source Insight 3.5, Visio 1. 概述 让我们先来看看问题的引入,在之前的virtio系列文章中,网络虚拟化的框架如下图所示: ​ ​ Qemu中的…

WebRTC-NACK、Pacer和拥塞控制和FEC

NACK机制发送端实现NACK的三个重点流程:发送RTP报文,实时存储报文到packet_history_队列处理接收到的RTCP NACK报文把nack包里的序号放到nack_sequence_numbers丢包队列重发NACK反馈的RTP报文重发报文这里有三点需要注意:1)会判断…