测开面经学习笔记

news/2024/4/21 12:57:02/文章来源:https://blog.csdn.net/lt6666678/article/details/136578877

1. mysql 和 redis的区别?

① 数据存储方式

  • MySQL:数据以表格的形式以行和列的方式存储在磁盘上,支持复杂的关系型数据模型。
  • Redis:数据存储在内存中,因此具有更快的读写速度,但受到内存容量的限制。

② 数据类型

  • MySQL:支持各种数据类型,包括整型、浮点型、字符型、日期型等。
  • Redis:支持丰富的数据类型,如字符串(String),列表(List)、哈希表(Hash)、集合(Set)、有序集合(Sorted Set)、位图(BitMap),还有三种特殊的数据类型 HyperLogLog(基数统计)、Bitmap (位图)、Geospatial (地理位置)。

③ 持久化

  • MySQL:支持持久化存储数据,数据可以在磁盘上持久保存。
  • Redis:可以选择是否持久化数据,支持RDB快照和AOF日志两种持久化方式。

④ 应用场景

  • MySQL:适用于需要复杂查询和事务支持的应用,如企业级应用、电子商务平台等。
  • Redis:适用于对速度要求较高、数据量较小、对数据结构要求较高的场景,如缓存、计数器、实时排行榜等。

2. Http 和 Https 的区别?

  • HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
  • HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
  • 两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
  • HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。

3. Https 的安全性体现在哪里?

  • 数据加密:HTTPS使用SSL/TLS加密协议对数据进行加密传输,防止数据在传输过程中被窃听或篡改。
  • 身份验证:HTTPS使用SSL证书对服务器进行身份验证,确保通信双方的身份,防止中间人攻击。
  • 数据完整性:HTTPS使用消息摘要算法(如SHA)来验证数据的完整性,确保数据在传输过程中没有被篡改。

4. TCP 的可靠性怎么保障的?

  • 连接管理:即三次握手和四次挥手。连接管理机制能够建立起可靠的连接,这是保证传输可靠性的前提。

  • 序列号:TCP将每个字节的数据都进行了编号,这就是序列号。序列号的具体作用如下:能够保证可靠性,既能防止数据丢失,又能避免数据重复。能够保证有序性,按照序列号顺序进行数据包还原。能够提高效率,基于序列号可实现多次发送,一次确认。

  • 确认应答:接收方接收数据之后,会回传ACK报文,报文中带有此次确认的序列号,用于告知发送方此次接收数据的情况。在指定时间后,若发送端仍未收到确认应答,就会启动超时重传。

  • 超时重传:超时重传主要有两种场景:数据包丢失:在指定时间后,若发送端仍未收到确认应答,就会启动超时重传,向接收端重新发送数据包。确认包丢失:当接收端收到重复数据(通过序列号进行识别)时将其丢弃,并重新回传ACK报文。

  • 流量控制:接收端处理数据的速度是有限的,如果发送方发送数据的速度过快,就会导致接收端的缓冲区溢出,进而导致丢包。为了避免上述情况的发生,TCP支持根据接收端的处理能力,来决定发送端的发送速度。这就是流量控制。流量控制是通过在TCP报文段首部维护一个滑动窗口来实现的。

  • 拥塞控制:拥塞控制就是当网络拥堵严重时,发送端减少数据发送。拥塞控制是通过发送端维护一个拥塞窗口来实现的。可以得出,发送端的发送速度,受限于滑动窗口和拥塞窗口中的最小值。拥塞控制方法分为:慢开始,拥塞避免、快重传和快恢复。

5. 常见的 Linux 指令

  • ls:列出当前目录的内容
  • grep:用于查找文件里符合条件的字符串或正则表达式
  • chmod(change mode):修改用户对于文件的修改权限
  • top:查看当前系统资源占用情况
  • ps(process status):显示当前进程信息
  • netstate:用于显示各种网络相关信息
  • echo:在命令行输出指定内容
  • tail:查看文件末尾部内容,跟踪文件的最新更改
  • 管道符 | :将左端命令的结果 作为 右边命令 的输入

6. 数组和链表的区别?

  • 访问效率:数组可以通过索引直接访问任何位置的元素,访问效率高,时间复杂度为O(1),而链表需要从头节点开始遍历到目标位置,访问效率较低,时间复杂度为O(n)。
  • 插入和删除效率:
    • 数组:需要移动其他元素,时间复杂度为O(n)
    • 链表:需要寻找到需要插入或删除的位置,平均时间复杂度为 O(n/2) 即 O(n)
  • 缓存命中率:由于数组元素在内存中连续存储,可以提高CPU缓存的命中率,而链表节点不连续存储,可能导致CPU缓存的命中率较低,频繁的缓存失效会影响性能。
  • 应用场景:数组适合静态大小、频繁访问元素的场景,而链表适合动态大小、频繁插入、删除操作的场景

7. 设计测试用例:朋友圈点赞功能

① 用例 1:点赞功能正常使用

  • 步骤:
    • 打开朋友圈
    • 打开一条动态
    • 点击点赞按钮
  • 预期结果:
    • 点赞按钮状态 变为 已点赞
    • 点赞数 +1
    • 用户信息显示在点赞列表中

② 用例 2:取消点赞功能

  • 步骤:
    • 打开朋友圈
    • 打开一条已点赞动态
    • 再次点击点赞按钮
  • 预期结果:
    • 点赞按钮状态 变为 未点赞
    • 点赞数 -1
    • 用户信息从点赞列表中消失

③ 用例 3:多用户同时点赞

  • 步骤:多个用户同时对同一条动态进行点赞操作。
  • 预期结果:点赞数正确累加,点赞列表显示所有点赞用户信息。

④ 用例 4:点赞数据同步

  • 步骤:用户在多端(如手机、电脑)对同一条动态进行点赞操作。
  • 预期结果:点赞操作在所有设备上同步更新,保持一致性。

⑤ 用例 5:点赞功能异常处理

  • 步骤:模拟网络异常或服务器故障时进行点赞操作。
  • 预期结果:系统能够正确处理异常情况,保证数据的一致性和完整性

8. TCP 和 UDP

  • TCP:是面向连接的、可靠的、基于字节流的传输协议,适用于需要可靠传输、顺序传输、流量控制和拥塞控制的应用。
  • UDP:是无连接的、不可靠的、基于数据包的传输协议。适用于实时性高、能容忍一定数据丢失的应用,以及需要减少通信开销的应用。

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

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

相关文章

HttpResponse响应模块设计与实现(http模块三)

目录 类功能 类定义 类实现 编译测试 类功能 类定义 // HttpResponse响应模块功能设计 class HttpResponse { private:int _statu;bool _redirect_flag; // 重定向标志std::string _body;std::string _redirect_url; // 重定向地址std::unordered_map<std::string, std…

WinCE USB驱动架构及术语明析

一、层式驱动的概念。 WinCE驱动多为层式驱动&#xff0c;分为MDD和PDD两层。 MDD包含通用的驱动代码&#xff0c;向操作系统提供了驱动接口&#xff0c;该层代码调用PDD功能访问硬件。 PDD部分包含与硬件平台相关的特殊代码&#xff0c;不具有通用性。 之所以要分层&#xff0…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Marquee)

跑马灯组件&#xff0c;用于滚动展示一段单行文本。仅当文本内容宽度超过跑马灯组件宽度时滚动&#xff0c;不超过时不滚动。 说明&#xff1a; 该组件从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Ma…

Swift SwiftUI 学习笔记 2024

Swift SwiftUI 学习笔记 2024 一、资源 视频资源 StanfordUnivercity 公开课 2023: https://cs193p.sites.stanford.edu/2023 教程 Swift 初识&#xff1a;基础语法&#xff1a;https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/…

Java基础 - 8 - 算法、正则表达式、异常

一. 算法 什么是算法&#xff1f; 解决某个实际问题的过程和方法 学习算法的技巧&#xff1f; 先搞清楚算法的流程&#xff0c;再直接去推敲如何写算法 1.1 排序算法 1.1.1 冒泡排序 每次从数组中找出最大值放在数组的后面去 public class demo {public static void main(S…

Python+更改镜像源下载库+PyCharm+汉化+第一个项目配置

文章目录 一、Python二、更改镜像源下载库三、PyCharm四、汉化五、第一个项目配置 2024年3月5日 操作环境&#xff1a; Win11-23H2 Python-3.12.2 PyCharm-2023.3.4 一、Python https://www.python.org/ 点击Download&#xff0c;查看对应的版本&#xff08; prerelease…

Springboot+vue的物业管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的物业管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的物业管理系统&#xff0c;采用M&#xff08;model&#xff09;V&#xff…

最简k8s部署(AWS Load Balancer Controller使用)

问题 我需要在k8s集群里面部署springboot服务&#xff0c;通过k8s ingress访问集群内部的springboot服务&#xff0c;应该怎么做&#xff1f; 这里假设已经准备好k8s集群&#xff0c;而且也准备好springboot服务的运行镜像了。这里我们将精力放在k8s服务编排上面。 一图胜千言…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Image)

Image为图片组件&#xff0c;常用于在应用中显示图片。Image支持加载PixelMap、ResourceStr和DrawableDescriptor类型的数据源&#xff0c;支持png、jpg、jpeg、bmp、svg、webp和gif类型的图片格式。 说明&#xff1a; 该组件从API Version 7开始支持。后续版本如有新增内容&am…

【Web安全】htaccess攻击

.htaccess攻击 文章目录 .htaccess攻击1. .htaccess文件2. 常见用法2.1. 自定义出错界面2.2. 强制文件执行方式2.3. PCRE绕过正则匹配2.4. php_value修改php设定2.5. php_value文件包含2.6. 把htaccess当作php 1. .htaccess文件 .htaccess是Apache网络服务器一个配置文件&#…

系统提示mfc100u.dll丢失或错误的解决方法分享

mfc100u.dll是Microsoft Foundation Classes (MFC)库中的一个关键动态链接库文件。 mfc100u.dll文件是Microsoft Foundation Classes (MFC)库的一部分&#xff0c;这是一个为软件开发者提供的一系列类和功能&#xff0c;旨在简化Windows应用程序的开发过程。这个特定的文件包含…

酷开科技以消费者需求为导向冲刺OTT行业的星辰大海

通过大屏营销、互动营销等方式&#xff0c;提升品牌认知度和市场竞争力。酷开科技始终坚持以消费者的需求为导向&#xff0c;致力于为品牌方和消费者搭建高效、准确的沟通桥梁&#xff0c;开创OTT大屏营销新纪元。 伴随技术发展&#xff0c;智能电视已经从“尝鲜”变成了主流产…

GO语言并发编程

点击名片关注 阿尘blog&#xff0c;一起学习&#xff0c;一起成长 1 Goroutine和channel Go语言通过goroutine和channel来实现并发编程。Goroutine是Go语言中轻量级的线程&#xff0c;它由Go运行时&#xff08;runtime&#xff09;管理&#xff0c;并且拥有自己的栈空间。Gorou…

mac本地启动sentinel

启动Sentinel控制台 1&#xff09;下载sentinel控制台jar包 https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar 2&#xff09;启动sentinel控制台 使用如下命令启动控制台&#xff1a; java -Dserver.port8080 -Dcsp.sentinel.d…

flink实战--Flink任务资源自动化优化

背景 在生产环境Flink任务资源是用户在实时平台端进行配置,用户本身对于实时任务具体配置多少资源经验较少,所以存在用户资源配置较多,但实际使用不到的情形。比如一个 Flink 任务实际上 4 个并发能够满足业务处理需求,结果用户配置了 16 个并发,这种情况会导致实时计算资…

Ajax+Axios+前后端分离+YApi+Vue-ElementUI组件+Vue路由+nginx【全详解】

目录 一.Ajax技术 二. Axios 三.前后台分离开发介绍 四. YAPI 五.前端工程化 六.vue工程的目录结构 七.Vue项目核心文件 八.Vue组件库ElementUI AboutView.vue最终代码 AboutView.vue最终代码 九.Vue路由 十.案例 十一.nginx介绍 一.Ajax技术 1.Ajax概述 Ajax: 全…

最新基于R语言lavaan结构方程模型(SEM)技术

原文链接&#xff1a;最新基于R语言lavaan结构方程模型&#xff08;SEM&#xff09;技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…

git分布式管理-头歌实验合并远程分支、rebase、储藏

一、合并远程分支merge 任务描述 在软件开发中&#xff0c;通常会在版本库中创建多个不同的分支进行开发。例如&#xff0c;最基本的可以有一个测试版分支和一个正式版分支&#xff0c;其中测试版分支用来完成最新功能代码的开发与测试&#xff0c;正式版则用于管理即将发布的版…

C# OpenCvSharp DNN 部署L2CS-Net人脸朝向估计

目录 介绍 效果 模型信息 项目 代码 下载 介绍 github地址&#xff1a;https://github.com/Ahmednull/L2CS-Net The official PyTorch implementation of L2CS-Net for gaze estimation and tracking 效果 模型信息 Inputs ------------------------- name&#xff1…

深入探索加载器(Loader)与插件(Plugin)的工作原理与技术实现

在软件开发和构建过程中&#xff0c;加载器与插件是两大核心组件&#xff0c;它们共同助力开发者实现代码的模块化、可扩展性以及复用性。对于技术型论坛的读者来说&#xff0c;理解这两者的工作原理和技术实现至关重要。以下&#xff0c;我们将对加载器和插件进行深入的剖析。…