当前位置: 首页 > news >正文

【面试系列】后端开发工程师 高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏:

⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题.
⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。
⭐️ 全流程数据技术实战指南:全面讲解从数据采集到数据可视化的整个过程,掌握构建现代化数据平台和数据仓库的核心技术和方法。

文章目录

      • 常见的初级面试题
        • 1. 请解释一下RESTful API的基本概念。
        • 2. 什么是CRUD操作?
        • 3. 请简述Node.js的特点。
        • 4. 什么是关系型数据库?举例说明。
        • 5. 请解释一下Python中的装饰器(Decorator)。
        • 6. 请解释一下JWT(JSON Web Token)的基本概念及其用途。
        • 7. 什么是ORM(对象关系映射)?
        • 8. 请解释一下HTTP状态码200和404的含义。
        • 9. 请描述一下在数据库中什么是索引。
        • 10. 请简述Docker的基本概念。
      • 常见的中级面试题
        • 1. 请解释一下数据库事务及其ACID特性。
        • 2. 什么是SQL注入攻击?如何防范?
        • 3. 请解释一下OAuth 2.0的授权流程。
        • 4. 什么是Microservices(微服务)架构?
        • 5. 请解释一下CAP定理。
        • 6. 如何在Python中进行单元测试?
        • 7. 请解释一下NoSQL数据库的类型及应用场景。
        • 8. 什么是消息队列?举例说明其应用场景。
        • 9. 请解释一下数据缓存及其策略。
        • 10. 如何设计一个高可用的后端系统?
      • 常见的高级面试题
        • 1. 请解释一下分布式锁及其实现方法。
        • 2. 如何优化数据库查询性能?
        • 3. 请解释一下负载均衡及其常见算法。
        • 4. 如何设计一个可扩展的微服务架构?
        • 5. 请解释一下幂等性及其在API设计中的重要性。
        • 6. 请解释一下CQRS(Command Query Responsibility Segregation)模式及其应用场景。
        • 7. 如何处理微服务间的通信和数据一致性问题?
        • 8. 什么是反向代理?举例说明其应用场景。
        • 9. 请解释一下微服务架构中的服务发现机制。
        • 10. 如何处理高并发情况下的数据一致性问题?
      • 常考知识点总结

常见的初级面试题

1. 请解释一下RESTful API的基本概念。

RESTful API是一种基于HTTP协议的设计风格,使用标准的HTTP方法(如GET、POST、PUT、DELETE)进行资源操作。每个资源通过URL唯一标识,使用JSON或XML进行数据交换。

2. 什么是CRUD操作?

CRUD操作是指创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据库中的记录,是数据库基本操作的总称。

3. 请简述Node.js的特点。

Node.js是一个基于V8引擎的JavaScript运行环境,采用事件驱动和非阻塞I/O模型,适合构建高性能的网络应用。Node.js能够处理大量并发连接,适用于实时应用。

4. 什么是关系型数据库?举例说明。

关系型数据库是基于关系模型的数据管理系统,通过表格存储数据,并使用SQL进行数据操作。常见的关系型数据库有MySQL、PostgreSQL和SQLite。

5. 请解释一下Python中的装饰器(Decorator)。

装饰器是一种用于修改函数或方法行为的函数。它允许在函数执行前后添加代码。示例如下:

def decorator(func):def wrapper():print("Before function execution")func()print("After function execution")return wrapper@decorator
def my_function():print("Inside function")my_function()
6. 请解释一下JWT(JSON Web Token)的基本概念及其用途。

JWT是一种用于安全传输信息的开放标准。它由三部分组成:头部(Header)、载荷(Payload)和签名(Signature),常用于身份验证和信息交换。

7. 什么是ORM(对象关系映射)?

ORM是一种将面向对象编程语言中的对象与关系数据库中的数据进行转换的技术。它使开发者可以使用面向对象的方式操作数据库。常见的ORM工具有Django ORM、SQLAlchemy和Hibernate。

8. 请解释一下HTTP状态码200和404的含义。

HTTP状态码200表示请求成功,服务器返回了请求的数据;状态码404表示请求的资源未找到。

9. 请描述一下在数据库中什么是索引。

索引是一种数据库对象,用于加速数据检索。通过索引,可以快速找到特定的记录,而无需扫描整个表。常见的索引类型有B树索引和哈希索引。

10. 请简述Docker的基本概念。

Docker是一种容器化技术,用于创建和管理容器。容器是一个轻量级、可移植的虚拟化环境,包含运行应用所需的所有依赖,确保在不同环境下的一致性。

常见的中级面试题

1. 请解释一下数据库事务及其ACID特性。

数据库事务是一组操作的集合,这些操作要么全部成功,要么全部失败。ACID特性包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),确保数据的完整性和可靠性。

2. 什么是SQL注入攻击?如何防范?

SQL注入攻击是通过将恶意SQL代码插入查询字符串来攻击数据库的方法。防范措施包括使用预编译语句(prepared statements)、参数化查询和ORM工具,避免直接拼接SQL语句。

3. 请解释一下OAuth 2.0的授权流程。

OAuth 2.0是一个授权框架,允许第三方应用在不暴露用户凭证的情况下访问用户资源。授权流程包括:用户向授权服务器请求授权码,授权服务器验证用户身份后返回授权码,应用使用授权码向资源服务器请求访问令牌,资源服务器验证令牌后允许访问资源。

4. 什么是Microservices(微服务)架构?

微服务架构是一种将应用拆分为多个小的、独立的服务的架构模式。每个服务独立部署和维护,负责特定功能,通过API相互通信。优点包括易于扩展、独立部署和高可用性,但也带来分布式系统的复杂性。

5. 请解释一下CAP定理。

CAP定理指出,在分布式系统中,不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)。只能在三个特性中选择两个。例如,选择一致性和分区容错性时,系统可能在某些情况下不可用。

6. 如何在Python中进行单元测试?

使用unittest模块进行单元测试。定义测试类继承自unittest.TestCase,并在测试方法中使用assert语句验证结果。例如:

import unittestdef add(a, b):return a + bclass TestAdd(unittest.TestCase):def test_add(self):self.assertEqual(add(1, 2), 3)if __name__ == '__main__':unittest.main()
7. 请解释一下NoSQL数据库的类型及应用场景。

NoSQL数据库包括键值存储(如Redis)、文档存储(如MongoDB)、列族存储(如Cassandra)和图数据库(如Neo4j)。它们适用于处理大规模数据和高并发访问,如实时分析、内容管理和社交网络。

8. 什么是消息队列?举例说明其应用场景。

消息队列是一种异步通信协议,允许发送方和接收方通过队列进行消息传递。常见的消息队列有RabbitMQ、Kafka。应用场景包括任务调度、日志收集和事件驱动架构。

9. 请解释一下数据缓存及其策略。

数据缓存是指将常用数据存储在高速缓存中,以提高访问速度。缓存策略包括LRU(最近最少使用)、FIFO(先进先出)和LFU(最少使用)。缓存可以减少数据库压力,提高系统性能。

10. 如何设计一个高可用的后端系统?

设计高可用后端系统的方法包括:负载均衡分发请求,使用数据库集群和主从复制提高数据可用性,采用微服务架构实现服务隔离,使用容器化和自动化部署工具提高系统恢复能力,进行性能监控和故障恢复演练。

常见的高级面试题

1. 请解释一下分布式锁及其实现方法。

分布式锁用于在分布式系统中同步访问共享资源。实现方法包括:使用Redis的SETNX命令,使用Zookeeper的临时节点,或者使用数据库的锁表机制。关键是确保锁的获取和释放操作的原子性。

2. 如何优化数据库查询性能?

优化数据库查询性能的方法包括:创建索引以加速数据检索,优化查询语句避免全表扫描,使用查询缓存减少重复查询,拆分大表和分区表提高查询效率,定期维护数据库(如重建索引、分析表)。

3. 请解释一下负载均衡及其常见算法。

负载均衡是将请求分配到多个服务器上以提高系统性能和可靠性。常见算法包括:轮询(Round Robin)、加权轮询(Weighted Round Robin)、最小连接数(Least Connections)、源地址哈希(Source IP Hashing)。

4. 如何设计一个可扩展的微服务架构?

设计可扩展微服务架构的方法包括:使用API网关统一入口,拆分服务功能到独立的微服务中,使用容器化技术实现服务隔离和弹性扩展,使用消息队列解耦服务之间的依赖,采用分布式数据存储提高数据访问性能。

5. 请解释一下幂等性及其在API设计中的重要性。

幂等性是指同一操作无论执行多少次,结果都一致。在API设计中,确保幂等性可以避免重复请求导致的数据不一致问题。常见方法包括:使用唯一请求ID,确保操作的原子性和可重入性。

6. 请解释一下CQRS(Command Query Responsibility Segregation)模式及其应用场景。

CQRS模式将命令(写操作)和查询(读操作)分离,分别使用不同的数据模型。它适用于需要高并发、高性能的系统,如金融交易系统、订单处理系统。CQRS可以提高系统性能

和可扩展性,但也增加了系统复杂性。

7. 如何处理微服务间的通信和数据一致性问题?

微服务间的通信可以使用HTTP、RPC或消息队列。处理数据一致性问题的方法包括:分布式事务(如两阶段提交)、事件驱动架构(使用事件溯源和Saga模式)、最终一致性(通过补偿机制)。

8. 什么是反向代理?举例说明其应用场景。

反向代理是一种代理服务器,接受客户端请求并将其转发给后端服务器。常用的反向代理软件有Nginx、Apache。应用场景包括:负载均衡、缓存静态内容、保护后端服务器、实现SSL卸载。

9. 请解释一下微服务架构中的服务发现机制。

服务发现机制用于在动态变化的微服务环境中找到服务实例。常见实现包括:客户端发现(服务注册表,如Consul、Eureka)、服务器端发现(使用API网关、负载均衡器),关键是保证服务注册和发现的实时性和可靠性。

10. 如何处理高并发情况下的数据一致性问题?

处理高并发数据一致性问题的方法包括:使用乐观锁或悲观锁控制并发访问,使用事务保证操作的原子性,采用分布式锁机制,设计幂等操作,使用消息队列实现异步处理,使用一致性哈希算法分片数据。

常考知识点总结

后端开发工程师面试中需要掌握的常考知识点包括:

  1. 服务器端语言:熟练掌握一种或多种服务器端编程语言(如Node.js、Java、Python),理解其异步编程模型和常用框架。
  2. 数据库管理:掌握关系型和NoSQL数据库的基本操作,了解事务、索引、优化及常见的数据库设计模式。
  3. API设计:理解RESTful API和GraphQL,掌握身份验证和授权机制(如OAuth 2.0、JWT)。
  4. 系统设计:熟悉高并发、高可用系统设计,了解负载均衡、分布式锁、CAP定理及微服务架构。
  5. 性能优化:掌握数据库查询优化、代码优化、缓存策略及性能监控。
  6. 容器化技术:熟悉Docker及容器编排工具(如Kubernetes),了解容器化应用的构建和部署。
  7. 安全性:了解常见的安全问题(如SQL注入、XSS),掌握防范措施和安全编码实践。
  8. 消息队列:熟悉消息队列的原理及应用场景,了解异步处理和事件驱动架构。
  9. 测试:掌握单元测试、集成测试及测试驱动开发(TDD)。
  10. 系统监控和运维:了解系统日志、性能监控、故障排查及自动化运维工具。

💗💗💗 如果觉得这篇文对您有帮助,请给个点赞、关注、收藏吧,谢谢!💗💗💗

相关文章:

【面试系列】后端开发工程师 高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…...

mac|浏览器链接不上服务器但可以登微信

千万千万千万不要没有关梯子直接关机,不然就会这样子呜呜呜 设置-网络,点击三个点--选择--位置--编辑位置(默认是自动) 新增一个,然后选中点击完成 这样就可以正常上网了...

Spring Cloud Alibaba之负载均衡组件Ribbon

一、什么是负载均衡? (1)概念: 在基于微服务架构开发的系统里,为了能够提升系统应对高并发的能力,开发人员通常会把具有相同业务功能的模块同时部署到多台的服务器中,并把访问业务功能的请求均…...

tkinter显示图片

tkinter显示图片 效果代码解析打开和显示图像 代码 效果 代码解析 打开和显示图像 def open_image():file_path filedialog.askopenfilename(title"选择图片", filetypes(("PNG文件", "*.png"), ("JPEG文件", "*.jpg;*.jpeg&q…...

000.二分查找算法题解目录

000.二分查找算法题解目录 69. x 的平方根(简单)34. 在排序数组中查找元素的第一个和最后一个位置(中等)...

数据资产赋能企业决策:通过精准的数据分析和洞察,构建高效的数据资产解决方案,为企业提供决策支持,助力企业实现精准营销、风险管理、产品创新等目标,提升企业竞争力

一、引言 在信息化和数字化飞速发展的今天,数据已成为企业最宝贵的资产之一。数据资产不仅包含了企业的基本信息,还蕴含了丰富的市场趋势、消费者行为和潜在商机。如何通过精准的数据分析和洞察,构建高效的数据资产解决方案,为企…...

【java开发环境】多版本jdk 自由切换window和linux

win10 一、准备 各种版本的jdk,按自己的需要下载。 我这里是需要jdk17和jdk8。 1、jdk17 下载:Java Downloads | Oracle,选择exe后缀文件 2、jdk8下 载:Java Downloads | Oracle,选择exe后缀文件 二、详细步骤 1、…...

MySQL实训项目——餐饮点餐系统

项目简介:餐饮点餐系统是一款为餐厅和顾客提供便捷点餐服务的在线平台。通过该系统,餐厅能够展示其菜单,顾客可以浏览菜品,并将其加入购物车或直接下单。系统还提供了订单管理功能,方便餐厅跟踪和处理顾客的订单。 1. …...

昇思MindSpore学习总结七——模型训练

1、模型训练 模型训练一般分为四个步骤: 构建数据集。定义神经网络模型。定义超参、损失函数及优化器。输入数据集进行训练与评估。 现在我们有了数据集和模型后,可以进行模型的训练与评估。 2、构建数据集 首先从数据集 Dataset加载代码&#xff0…...

AI时代创新潮涌,从探路到引路,萤石云引领千行百业创新

步入AI新时代,AI、云计算、大数据等技术迅速迭代,并日益融入经济社会发展各领域全过程,数字经济成为推动千行百业转型升级的重要驱动力量。 今年的政府工作报告提出,深入推进数字经济创新发展。积极推进数字产业化、产业数字化&a…...

计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js

Python美食推荐系统开题报告 一、项目背景与意义 随着互联网和移动技术的飞速发展,人们的生活方式发生了巨大变化,尤其是餐饮行业。在线美食平台如雨后春笋般涌现,为用户提供了丰富的美食选择。然而,如何在海量的餐饮信息中快速…...

【鸿蒙学习笔记】鸿蒙ArkTS学习笔记

应用开发导读:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-guide-V5 这里写目录标题 基础组件通用属性容器组件Button 迭代完备 【鸿蒙培训】第1天・环境安装 【鸿蒙培训】第2天・装饰器・组件和页面…...

广东行政职业学院数据智能订单班开班暨上进双创工作室签约仪式圆满结束

为响应教育领域数字化与智能化浪潮这一变革,给学生提供更好的教育资源和实践机会,6月27日,“泰迪广东行政职业学院数据智能订单班开班仪式暨上进双创工作室签约授牌”在广东行政职业学院举行。广东行政职业学院智慧政务学院(电子信…...

python与matlab微分切片的区别

python python使用np中的linespace生成等间隔数值, import numpy as np numpy.linspace(start, stop, num50, endpointTrue, retstepFalse, dtypeNone, axis0)start:序列的起始值。stop:序列的结束值。如果 endpoint 为 True,该…...

MSPG3507——蓝牙接收数据显示在OLED,滴答定时器延时500MS

#include "ti_msp_dl_config.h" #include "OLED.h" #include "stdio.h"volatile unsigned int delay_times 0;//搭配滴答定时器实现的精确ms延时 void delay_ms(unsigned int ms) {delay_times ms;while( delay_times ! 0 ); } int a0; …...

Linux 安装 Redis 教程

优质博文:IT-BLOG-CN 一、准备工作 配置gcc:安装Redis前需要配置gcc: yum install gcc如果配置gcc出现依赖包问题,在安装时提示需要的依赖包版本和本地版本不一致,本地版本过高,出现如下问题&#xff1a…...

【高考志愿】建筑学

目录 一、专业介绍 1.1 专业定义 1.2 专业培养目标 1.3 核心课程 二、就业方向和前景 2.1 就业方向 2.2 专业前景 三、报考注意 四、行业趋势与未来展望 五、建筑学专业排名 一、专业介绍 1.1 专业定义 建筑学,这一充满艺术与科技魅力的学科,…...

Kubernetes的发展历程:从Google内部项目到云原生计算的基石

目录 一、起源与背景 1.1 Google的内部项目 1.2 Omega的出现 二、Kubernetes的诞生 2.1 开源的决策 2.2 初期发布 三、Kubernetes的发展历程 3.1 社区的成长 3.2 生态系统的壮大 3.3 重大版本和功能 3.4 多云和混合云的支持 四、Kubernetes的核心概念 4.1 Pod 4.…...

/proc/config.gz

前言 有时候,我们想知道一个运行着的内核都打开了哪些编译选项,当然,查看编译环境的 .config 文件是一个不错的选择,除此之外,还有没有别的办法呢?当然有,那就是 /proc/config.gz。 一睹风采 …...

论坛万能粘贴手(可将任意文件转为文本)

该软件可将任意文件转为文本。 还原为原文件的方法:将得到的文本粘贴到记事本,另存为UUE格式,再用压缩软件如winrar解压即可得到原文件。建议用于小软件。 下载地址:https://download.csdn.net/download/wgxds/89505015 使用演示…...

学习笔记——动态路由——OSPF(OSPF协议的工作原理)

八、OSPF协议的工作原理 1、原理概要 (1)相邻路由器之间周期性发送HELLO报文,以便建立和维护邻居关系 (2)建立邻居关系后,给邻居路由器发送数据库描述报文(DBD),也就是将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器…...

Mybatis1(JDBC编程和ORM模型 MyBatis简介 实现增删改查 MyBatis生命周期)

目录 一、JDBC编程和ORM模型 1. JDBC回顾 2. JDBC的弊端 3. ORM模型 Mybatis和hibernate 区别: 4. mybatis 解决了jdbc 的问题 二、MyBatis简介 1. MyBatis快速开始 1.1 导入jar包 1.2 引入 mybatis-config.xml 配置文件 1.3 引入 Mapper 映射文件 1.3 测试 …...

论文阅读YOLO-World: Real-Time Open-Vocabulary Object Detection

核心: 开放词汇的实时的yolo检测器。重参数化的视觉语言聚合路径模块Re-parameterizable VisionLanguage Path Aggregation Network (RepVL-PAN)实时核心:轻量化的检测器离线词汇推理过程重参数化 方法 预训练方案:将实例注释重新定义为区域…...

SM2的签名值byte数组与ASN.1互转

ASN.1抽象语言标记(Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式,它提供了一整套正规的格式用于描述对象的结构。 一、该结构的应用场景 例如在做待签名的数字信封时,数字信封使用ASN.1封装,这个时…...

云计算与生成式AI的技术盛宴!亚马逊云科技深圳 Community Day 社区活动流程抢先知道!

小李哥最近要给大家分享7月7日在深圳的即将举办的亚马逊云科技生成式AI社区活动Community Day ,干货很多内容非常硬核,不仅有技术分享学习前沿AI技术,大家在现场还可以动手实践沉浸式体验大模型,另外参与现场活动还可以领取诸多精…...

【鸿蒙学习笔记】基础组件Progress:进度条组件

官方文档:Progress 目录标题 作用最全属性迭代追加进度赋值风格样式 作用 进度条组件 最全属性迭代追加 Progress({ value: 20, total: 100, type: ProgressType.Linear }).color(Color.Green)// 颜色.width(200)// 大小.height(50)// 高度.value(50)// 进度可更…...

前程无忧滑块

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi …...

一站式uniapp优质源码项目模版交易平台的崛起与影响

一、引言 随着信息技术的飞速发展,软件源码已成为推动行业进步的重要力量。源码的获取、交易和流通,对于开发者、企业以及项目团队而言,具有极其重要的意义。为满足市场对高质量源码资源的迫切需求,一站式uniapp优质源码项目模版…...

Python中vars用法

在 Python 中,vars() 函数返回对象的 __dict__ 属性的字典。这个字典包含了对象的所有属性和它们的值。vars() 函数可以用于模块、类、实例,或者拥有 __dict__ 属性的任何其它对象。这里有几个使用 vars() 的例子: 一.模块 如果对一个模块使…...

【机器学习】基于Transformer的迁移学习:理论与实践

引言 在机器学习领域,迁移学习已成为提升模型训练效率和性能的重要策略,特别是在标注数据稀缺的场景下。Transformer模型自2017年由Google提出以来,在自然语言处理(NLP)领域取得了突破性进展,并逐渐扩展到…...

如何应对情绪和培养理性的书

以下是几本关于如何应对情绪和培养理性的书籍推荐: 《情绪智商》(Emotional Intelligence) - 丹尼尔戈尔曼(Daniel Goleman) 这本书探讨了情绪智商(EQ)的重要性以及如何通过提高EQ来改善个人和职…...

[数据集][目标检测]电缆钢丝绳线缆缺陷检测数据集VOC+YOLO格式1800张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1800 标注数量(xml文件个数):1800 标注数量(txt文件个数):1800 标注…...

【Git 学习笔记】Ch1.1 Git 简介 + Ch1.2 Git 对象

还是绪个言吧 今天整理 GitHub 仓库,无意间翻到了几年前自学 Git 的笔记。要论知识的稳定性,Git 应该能挤进前三——只要仓库还在,理论上当时的所有开发细节都可以追溯出来。正好过段时间会用到 Git,现在整理出来就当温故知新了。…...

Python 中别再用 ‘+‘ 拼接字符串了!

目录 引言 为什么不推荐使用 "" 示例代码 更高效的替代方法 使用 join 方法 示例代码 使用格式化字符串(f-strings) 示例代码 引言 大家好,在 Python 编程中,我们常常需要对字符串进行拼接。你可能会自然地想到…...

六西格玛绿带培训的证书有什么用处?

近年来,六西格玛作为一套严谨而系统的质量管理方法,被广泛运用于各行各业。而六西格玛绿带培训证书,作为这一方法论中基础且重要的认证,对于个人和企业而言,都具有不可忽视的价值。本文将从多个角度深入探讨六西格玛绿…...

《妃梦千年》第二十章:风雨欲来

第二十章:风雨欲来 战斗的胜利让林清婉和皇上的关系更加亲密,但宫中的阴谋却并未因此而停止。一天,林清婉正在寝宫中思考未来的对策,忽然接到一个紧急消息。小翠匆匆跑来,神色紧张:“娘娘,太后…...

深入理解二分法

前言 二分法(Binary Search)是一种高效的查找算法,广泛应用于计算机科学和工程领域。它用于在有序数组中查找特定元素,其时间复杂度为 O(log n),显著优于线性搜索的 O(n)。本文将深入介绍二分法的原理、实现及其应用场…...

【C命名规范】遵循良好的命名规范,提高代码的可读性、可维护性和可复用性

/******************************************************************** * brief param return author date version是代码书写的一种规范 * brief :简介,简单介绍函数作用 * param :介绍函数参数 * return:函数返回类型说明 * …...

Hbase面试题总结

一、介绍下HBase架构 --HMaster HBase集群的主节点,负责管理和协调整个集群的操作。它处理元数据和表的分区信息,控制RegionServer的负载均衡和故障恢复。--RegionServer HBase集群中的工作节点,负责存储和处理数据。每个RegionServer管理若…...

C语言部分复习笔记

1. 指针和数组 数组指针 和 指针数组 int* p1[10]; // 指针数组int (*p2)[10]; // 数组指针 因为 [] 的优先级比 * 高,p先和 [] 结合说明p是一个数组,p先和*结合说明p是一个指针 括号保证p先和*结合,说明p是一个指针变量,然后指…...

Rust学习笔记 (命令行命令) : 用override set 设置工具链

在cargo run某个项目时出现了如下错误:error: failed to run custom build command for ring v0.16.20(无法运行“Ring v0.16.20”的自定义构建命令),在PowerShell命令行运行命令 rustup override set stable-msvc后成功运行。 o…...

cv::Mat类的矩阵内容输出的各种格式的例子

操作系统&#xff1a;ubuntu22.04OpenCV版本&#xff1a;OpenCV4.9IDE:Visual Studio Code编程语言&#xff1a;C11 功能描述 我们可以这样使用&#xff1a;cv::Mat M(…); cout << M;&#xff0c;直接将矩阵内容输出到控制台。 输出格式支持多种风格&#xff0c;包括O…...

Redis--注册中心集群 Cluster 集群-单服务器

与“多服务器集群”一致需要创建redis配置模板 参照以下链接 CSDN 创建redis容器 node01服务器上创建容器 docker run -d --name redis-6381 --net host --privilegedtrue \ -v /soft/redis-cluster/6381/conf/redis.conf:/etc/redis/redis.conf \ -v /soft/redis-cluster/6…...

CV01_相机成像原理与坐标系之间的转换

目录 0.引言&#xff1a;小孔成像->映射表达式 1. 相机自身的运动如何表征&#xff1f;->外参矩阵E 1.1 旋转 1.2 平移 2. 如何投影到“像平面”&#xff1f;->内参矩阵K 2.1 图像平面坐标转换为像素坐标系 3. 三维到二维的维度是如何丢失的&#xff1f;…...

Android Lint

文章目录 Android Lint概述工作流程Lint 问题问题种类警告严重性检查规则 用命令运行 LintAndroidStudio 使用 Lint忽略 Lint 警告gradle 配置 Lint查找无用资源文件 Android Lint 概述 Lint 是 Android 提供的 代码扫描分析工具&#xff0c;它可以帮助我们发现代码结构/质量…...

【算法刷题 | 动态规划14】6.28(最大子数组和、判断子序列、不同的子序列)

文章目录 35.最大子数组和35.1题目35.2解法&#xff1a;动规35.2.1动规思路35.2.2代码实现 36.判断子序列36.1题目36.2解法&#xff1a;动规36.2.1动规思路36.2.2代码实现 37.不同的子序列37.1题目37.2解法&#xff1a;动规37.2.1动规思路37.2.2代码实现 35.最大子数组和 35.1…...

vue3 vxe-grid列中绑定vxe-switch实现数据更新

1、先上一张图&#xff1a; <template #valueSlot"{ row }"><vxe-switch :value"getV(row.svalue)" change"changeSwitch(row)" /></template>function getV(value){return value 1;};function changeSwitch(row) {console.l…...

Hive SQL:实现炸列(列转行)以及逆操作(行转列)

目录 列转行行转列 列转行 函数&#xff1a; EXPLODE(ARRAY)&#xff1a;将ARRAY中的每一元素转换为每一行 EXPLODE(MAP)&#xff1a;将MAP中的每个键值对转换为两行&#xff0c;其中一行数据包含键&#xff0c;另一行数据包含值 数据样例&#xff1a; 1、将每天的课程&#…...

MD5算法详解

哈希函数 是一种将任意输入长度转变为固定输出长度的函数。 一些常见哈希函数有&#xff1a;MD5、SHA1、SHA256。 MD5算法 MD5算法是一种消息摘要算法&#xff0c;用于消息认证。 数据存储方式&#xff1a;小段存储。 数据填充 首先对我们明文数据进行处理&#xff0c;使其…...

ES6的代理模式-Proxy

语法 target 要使用 Proxy 包装的目标对象&#xff08;可以是任何类型的对象&#xff0c;包括原生数组&#xff0c;函数&#xff0c;甚至另一个代理handler 一个通常以函数作为属性的对象&#xff0c;用来定制拦截行为 const proxy new Proxy(target, handle)举个例子 <s…...

Redis 集群模式

一、集群模式概述 Redis 中哨兵模式虽然提高了系统的可用性&#xff0c;但是真正存储数据的还是主节点和从节点&#xff0c;并且每个节点都存储了全量的数据&#xff0c;此时&#xff0c;如果数据量过大&#xff0c;接近或超出了 主节点 / 从节点机器的物理内存&#xff0c;就…...

jenkins在使用pipeline时,为何没有方块形视图

项目场景&#xff1a; 安装完Jenkins时后&#xff0c;通过pipeline创建的项目任务。 问题描述 在立即构建后&#xff0c;没有显示每个阶段的视图。 原因分析&#xff1a; 原因是&#xff0c;刚安装的Jenkins&#xff0c;这个视图不是Jenkins自带的功能&#xff0c;而必须安装…...

【摄像头标定】单目摄像头标定及矫正-opencv(python)

单目摄像头标定及矫正 ①标定②矫正&#xff1a; ①标定 既然是标定&#xff0c;就需要准备使用待标定单目摄像头拍摄的标定板图片。 这里使用棋盘格标定板&#xff0c;可以到网上下载&#xff0c;需要知道棋盘格的角点。 由于我的摄像头是嵌入于开发板底板中&#xff0c;并且…...

生成独立的zedboard+ad9361起始项目

文件分享 链接&#xff1a;https://pan.baidu.com/s/17wB_9xVWjO7HhxNvmmZyuA 提取码&#xff1a;94zz 首先下载HDL和NO-OS项目 git clone --recursive https://github.com/analogdevicesinc/hdl git clone --recursive https://github.com/analogdevicesinc/no-OS下载…...

字符串

对应练习题&#xff1a;力扣平台 14. 最长公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {string strs1strs[0];//初始前缀字符串for (int i 1; i < strs.size(); i) {while(strs[i].find(strs1)!0)//遍历找到共同最长前…...

LVM核心概念

1. LVM简介 LVM是逻辑盘卷管理&#xff08;Logical Volume Manager&#xff09;的简称&#xff0c;它是Linux环境下对磁盘分区进行管理的一种机制&#xff0c;LVM是建立在硬盘和分区之上的一个逻辑层&#xff0c;来提高磁盘分区管理的灵活性。 优点&#xff1a; 可以灵活分配…...

必胜客之后,DQ冰淇淋也跨界卖汉堡了

汉堡界又迎来一重磅新玩家。近日,DQ冰淇淋在其官方微博、小红书等社交媒体上发文称,DQ汉堡全国首店将于7月10日登陆上海。新玩家入局同时,哈比特汉堡、摩斯汉堡等一批“老玩家”却遗憾陆续退出中国市场。汉堡界,似乎从来不缺新故事。01.冰淇淋“专家”卖汉堡29元起卖,不“…...

考拉五座北京车展惊艳亮相,黑科技再次成为制胜法宝

在刚刚结束的北京国际车展上,极狐品牌携旗下全系车型强势登场,其中考拉五座更是首次亮相,引起了广泛关注。这款车型的出现,预示着智能汽车领域又迎来了一位实力不俗的新成员。随着考拉五座的加入,新能源汽车市场的竞争无疑将更加激烈和多彩。车展上,观众们纷纷驻足观看,…...

python——__future__模块

__future__模块是Python的一个特殊内建模块&#xff0c;它提供了一种方式来让程序员在当前版本的Python中使用未来版本的语言特性&#xff0c;从而帮助代码实现向前兼容。这意味着&#xff0c;即使你正在使用的是旧版本的Python&#xff0c;也可以通过导入__future__模块中的某…...

【Unity】 HTFramework框架(四十九)新建脚本时,自动向脚本添加【引用命名空间】

更新日期&#xff1a;2024年5月28日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 自动向脚本添加【引用命名空间】1.新建一个编辑器脚本2.静态构造方法3.标记 InitializeOnLoad4.添加【默认引用命名空间】的规则5.再次新建脚本 自动向脚…...

赶紧收藏!2024 年最常见 20道 Redis面试题(五)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 20道 Redis面试题&#xff08;四&#xff09;-CSDN博客 九、Redis集群的主从复制模型是怎样的&#xff1f; Redis 集群的主从复制模型是一种数据冗余和高可用性策略&#xff0c;它允许数据在多个节点之间进行复制。…...

国产PS插件新选择;StartAI平替中的佼佼者!

前言 在设计的世界里&#xff0c;每一个细节都至关重要。设计师们常常面临时间紧迫、创意受限、工具复杂等挑战。Photoshop虽强大&#xff0c;但繁琐的操作和高昂的成本往往令人望而却步。今天我就为大家介绍一款PSAI插件——StartAI&#xff0c;一款专为Photoshop设计的国产A…...