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

排查bug的通用思路

在这里插入图片描述
⭐️前言⭐️

APP点击某个按钮没有反应/PC端执行某个操作后,响应较慢,通用的问题排查方法:

从多个角度来排查问题

🍉欢迎点赞 👍 收藏留言评论

🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

🍉博客中涉及源码及博主日常练习代码均已上传GitHub


请添加图片描述

📍内容导读📍

  • 🍅综合排查流程
  • 🍅前端角度
  • 🍅网络层角度
  • 🍅后端应用层
  • 🍅数据层
  • 🍅系统资源问题
  • 🍅 配置与架构问题
  • 🍅优化建议
  • 🍅通用的一些解决手段

🍅综合排查流程

网络请求和响应的检查

  • 使用浏览器开发者工具F12,关注点击按钮后,捕获到的请求的方式(GET/POST)、请求头和请求体是否符合预期
  • 查看服务器的响应,检查响应状态码(如200成功、500服务器错误)以及返回的数据内容,确保响应数据符合预期

分离端复现问题

  • 前端单独测试:可以在浏览器中将开发者工具的网络连接调为“离线模式”来测试前端逻辑。模拟前端点击操作,查看是否存在接口调用。如果前端逻辑应该在无网络时拦截,但未拦截,说明前端存在问题。
  • 后端单独测试:通过工具(比如postman)模拟前端发起API请求,查看后端接口的响应是否符合预期。确保后端在接受到正确的请求时,返回符合业务逻辑的响应

分析慢点

  • 定位慢点:可以通过浏览器控制台抓请求或者记录时间戳的方式,分析延迟主要出现在前端、网络还是后端

    • 可以在前端和后端的关键节点记录时间错,通过时间戳的对比定位慢点

  • 分段日志埋点:在后端的关键逻辑处添加日志记录耗时(比如业务处理开始、结束,数据库查询开始、结束)

    • 使用System.currentTimeMillis()记录时间差,快速找到耗时长的部分

分阶段排查

  • 前端慢:关注请求发出前后的逻辑
  • 网络慢:检查网络传输与中间层
  • 后端慢:逐层检查应用层、数据库和其他依赖服务

协同调试

  • 将发现的问题详细记录,包括问题的复现步骤、请求和响应的具体内容、错误日志等,反馈到前后端团队。
  • 组织线上调试会议,前后端、测试共同协作,通过共享日志、实时调试来定位问题的根源。

🍅前端角度

1.请求问题

  • 网络延迟:浏览器F12控制台看请求,检查前端到后端的网络路径是否正常,有无高延迟或丢包现象。
  • 请求参数问题:确认发送的请求是否携带了过大的数据,或者请求的参数不符合接口要求,导致后端处理异常
  • 重复请求:检查前端代码是否因逻辑问题导致发送了重复或无意义的请求
  • 请求超时配置:检查前端是否配置了过长的超时时间,未能及时识别问题

2.静态资源问题:

  • 如果时静态资源请求慢,可能时前端资源服务器的CDN缓存未命中或者配置问题。

🍅网络层角度

  • 网络延迟
    • 网络带宽不足或延迟过高,特别是服务与数据库、缓存服务分布在不同区域时。
    • 数据包丢失或网络不稳定,导致重试或请求失败。
  • DNS解析延迟
    • 服务调用中依赖的域名解析慢,影响请求的实际发出时间。
  • 链路复杂
    • 多层代理(如网关、负载均衡)导致请求经过多个中间环节,增加响应时间。

🍅后端应用层

  • 业务逻辑复杂
    • 业务代码中嵌套调用过多、逻辑判断繁琐,导致请求处理耗时。
    • 不必要的循环或递归操作,特别是处理大规模数据时未优化算法。
  • 代码优化不足
    • 代码中存在未优化的阻塞操作(如线程等待、同步锁竞争)。
    • 不合理的数据结构选择(如线性搜索代替哈希表)。
  • 第三方接口调用慢
    • 调用外部服务(如支付接口、第三方API)时出现网络延迟或接口响应慢。
    • 第三方服务限流或超时未处理,导致阻塞。
  • 异常处理问题
    • 异常处理逻辑不完善,导致未捕获异常不断重试或抛出。
  • 缓存问题
    • 缓存未命中
      • 请求频率高但未利用缓存优化
      • 热数据未加载到缓存,直接从数据库读取数据
    • 缓存击穿、雪崩或穿透
      • 高并发时,缓存过期或被大量无效请求穿透
      • 缓存层压力过大,导致失效或阻塞
    • 缓存更新策略问题
      • 缓存未及时更新,导致大量请求命中无效数据并触发数据库查询
  • 队列与任务调度问题
    • 消息队列积压
      • 消息队列(如RabbitMQ、Kafka)中消费速度低于生产速度,导致请求延迟
      • 消费者线程数量不足或处理能力有限
    • 任务调度延迟
      • 定时任务频繁触发,导致线程资源耗尽
      • 分布式任务调度系统负载不均或出现故障

🍅数据层

1.索引问题

  • 未建立索引
    • 查询字段没有建立索引,导致数据库全表扫描
  • 索引未命中
    • 查询条件不符合索引最左前缀原则,联合索引被部分利用
    • 查询使用了LIKE '%xxx' 或函数计算等导致索引失效
  • 索引过多或过大
    • 索引数量过多增加了维护成本
    • 大量索引需要更新时,写操作性能降低

2.数据量问题

  • 表数据量过大:
    • 数据量超过百万行时,查询性能显著下降
    • 热点数据和冷数据混合,影响查询效率
  • 分页查询耗时:
    • 大偏移量分页(比如OFFSET 100000)导致性能问题,数据库依然扫描了大量无用数据
  • 历史数据未归档:
    • 查询需要扫描包含历史数据的大表

3.SQL语句问题

  • 复杂查询:
    • 查询包含多表关联(JOIN),特别是数据量大的表之间的连接
    • 使用子查询(INNOT IN),导致数据库多长查询结果集
  • 缺乏限制条件:
    • 未使用LIMIT或条件过滤,导致返回大量无关数据
  • 排序和聚合操作:
    • ORDER BYGROUP BY操作未基于索引,导致全表扫描和排序

4.数据库资源问题

  • 连接池不足:
    • 数据库连接池耗尽,导致等待队列增加
  • 锁等待:
    • 并发事务导致锁竞争,如行锁、表锁等待时间过长
    • 死锁问题导致查询阻塞
  • 缓存失败:
    • 查询未命中数据库缓存,必须从磁盘读取数据

5.表结构问题

  • 表设计不合理:
    • 表字段过多,查询返回冗余数据
    • 数据库规范化设计过度,导致频繁的JOIN
  • 分区表未充分利用:
    • 查询条件未命中分区键,导致扫描所有分区

优化建议

  • 索引优化:设计合理的索引,避免索引失效
  • 分库分表:将大表拆分为小表,减少数据量
  • 慢查询优化:启用慢查询日志,针对耗时SQL进行调优
  • 读写分离:通过主从架构分担查询压力
  • 缓存使用:引入Redis、Memcached等缓存层,减少数据库访问
  • 事务管理:缩短事务时间,避免长时间锁竞争

🍅系统资源问题

  1. CPU过载
    • 高并发导致CPU使用率过高,线程池处理能力不足。
    • 复杂计算任务(如加密解密、文件处理)占用大量CPU资源。
  2. 内存不足
    • 服务内存泄漏或内存溢出,导致频繁GC(垃圾回收)。
    • 使用不合理的数据结构,占用大量内存空间。
  3. 磁盘I/O瓶颈
    • 日志写入、文件读写过于频繁,磁盘I/O压力过大。
    • SSD或HDD性能不足,影响数据存取效率。

🍅 配置与架构问题

  1. 线程池配置不合理
    • 线程池大小不足,导致请求堆积。
    • 超大线程池导致上下文切换成本过高。
  2. 服务架构问题
    • 单体架构无法承受高并发,导致瓶颈。
    • 微服务之间调用链过长,服务依赖环节过多。
  3. 负载均衡策略问题
    • 负载均衡未配置健康检查,流量分发到异常实例。
    • 负载分配不均,部分节点过载。

🍅优化建议

  • 代码层优化:梳理业务逻辑,优化算法与数据结构,移除阻塞代码。

  • 数据库优化:索引设计、缓存策略、分库分表、历史数据归档。

  • 缓存与队列优化:合理使用缓存,优化队列消费逻辑,监控积压情况。

  • 架构优化:通过服务拆分、负载均衡、水平扩展等手段提升服务能力。

  • 监控与诊断:通过监控工具或者监控埋点,识别瓶颈,优化慢点。

🍅通用的一些解决手段

  • 清除应用缓存,重新登录
  • 检查输入是否合理,比如大模型的prompt是否符合要求
  • APP可以检查版本是否最新、是否在维护期间

⭐️最后的话⭐️
总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

请添加图片描述

相关文章:

排查bug的通用思路

⭐️前言⭐️ APP点击某个按钮没有反应/PC端执行某个操作后,响应较慢,通用的问题排查方法: 从多个角度来排查问题 🍉欢迎点赞 👍 收藏 ⭐留言评论 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评…...

探秘CSS3 3D转换:打造立体网页动画与视觉效果的魔法

在现代网页设计中,CSS3 3D转换(3D Transforms)已经成为一种强大的工具,用于创建各种动态效果和视觉吸引力。本文将详细介绍CSS3 3D转换的基本概念、常见属性及其应用示例,帮助您掌握这一技术,提升网页设计的…...

Pycharm 安装两种不同版本的解释器

背景 Pycharm使用的解释器是python3.11,python3.9.x之后不支持win7;有同事需要在win7上使用python制作的exe,而了“win7环境下运行python打包exe提示找不到api-ms-win-core-path-l1-1-0.dll”。 过程 查找了一些资料,发现直接将…...

小红薯x-s算法分析最新12-06(x-s 56)(上)

目标-小红薯达人作品:aHR0cHM6Ly93d3cueGlhb2hvbmdzaHUuY29tLw 1、确定目标 打上xhr断点 发现是异步请求,同时各个参数已经生成结束了 2、进入第二个异步函数 打上断点并继续运行 发现在e这个位置也生成了,那么再继续往上找异步参数进行断…...

视频融合×室内定位×数字孪生

随着物联网技术的迅猛发展,室内定位与视频融合技术在各行各业中得到了广泛应用。不仅能够提供精确的位置信息,还能通过实时视频监控实现全方位数据的可视化。 与此同时,数字孪生等技术的兴起为智慧城市、智慧工厂等应用提供了强大支持&#…...

JMS和消息中间件:Kafka/RocketMQ

文章目录 消息传递模型使用JMS还是KafkaKafka与RocketMQ的优缺点Kafka与RocketMQ的使用场景Kafka与RocketMQ的选型指南 TPM 项目中, iflow之间使用了JMS,后端项目与数据库通信使用Kafka MQ和JMS的区别: JMS是 java 用来处理消息的一个API规范…...

FreeRTOS之ARM CR5栈结构操作示意图

FreeRTOS之ARM CR5栈结构操作示意图 1 FreeRTOS源码下载地址2 ARM CR5栈结构操作宏和接口2.1 portSAVE_CONTEXT宏2.1.1 portSAVE_CONTEXT源码2.1.2 portSAVE_CONTEXT宏操作栈结构变化示意图 2.2 portRESTORE_CONTEXT宏2.2.1 portRESTORE_CONTEXT源码2.2.2 portRESTORE_CONTEXT宏…...

【技巧】Mac上如何显示键盘和鼠标操作

在制作视频教程时,将键盘和鼠标的操作在屏幕上显示出来,会帮助观众更容易地理解。 推荐Mac上两款开源的小软件。 1. KeyCastr 这款工具从2009年至今一直在更新中。 https://github.com/keycastr/keycastr 安装的话,可以从Github上下载最…...

三种插入排序算法

目录 1.直接插入排序 直接插入排序的步骤示例 直接插入排序的特点 适用场景 2.折半插入排序 折半插入排序的基本原理 折半插入排序的实现过程 折半插入排序的时间复杂度 折半插入排序的特点 3.希尔排序 希尔排序的基本原理 希尔排序的步骤举例 希尔排序的时间复杂…...

力扣100题--移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: […...

第30天:安全开发-JS 应用NodeJS 指南原型链污染Express 框架功能实现审计0

时间轴: 演示案例: 环境搭建-NodeJS-解析安装&库安装 功能实现-NodeJS-数据库&文件&执行 安全问题-NodeJS-注入&RCE&原型链 案例分析-NodeJS-CTF 题目&源码审计 开发指南-NodeJS-安全 SecGuide 项目、 环境搭建-NodeJ…...

1.使用docker 部署redis Cluster模式 集群3主3从

1.使用docker 部署redis Cluster模式 集群3主3从 1.1 先安装docker 启动docker服务,拉取redis镜像 3主3从我们要在docker启动6个容器docker run --name redis-node-1 --net host --privilegedtrue -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-…...

SAP导出表结构并保存到Excel 源码程序

SAP导出表结构并保存到Excel,方便写代码时复制粘贴 经常做接口,需要copy表结构,找到了这样一个程程,特别有用。 01. 先看结果...

李飞飞:Agent AI 多模态交互的前沿探索

发布于:2024 年 11 月 27 日 星期三 北京 #RAG #李飞飞 #Agent #多模态 #大模型 Agent AI在多模态交互方面展现出巨大潜力,通过整合各类技术,在游戏、机器人、医疗等领域广泛应用。如游戏中优化NPC行为,机器人领域实现多模态操作等。然而,其面临数据隐私、偏见、可解释性…...

算法基础学习Day2(双指针)

文章目录 1.题目2.题目解答1.快乐数题目及题目解析算法学习代码提交 2.题目2题目及题目解析算法学习代码提交 1.题目 202. 快乐数 - 力扣(LeetCode)11. 盛最多水的容器 - 力扣(LeetCode) 2.题目解答 1.快乐数 题目及题目解析 …...

信奥常考点:二叉树的构建(已知中序和 前序或后序 的情况下)

一、题目引入 这是来自CCF-GESP C七级认证 2024年9月的题目。 我们在此不解题,只把树画出来。 CCF-GESP 编程能力认证 C 七级 2024年9月份详细解析-CSDN博客 二、解题过程 我们可以根据先序遍历得出根节点是A,然后我们得到了A的左子树[B D](橙…...

《CS2》运行时提示“缺少steam_api_64.dll”文件该如何处理?“找不到steam_api.dll,无法继续执行代码”的修复方法

《CS2》游戏运行时文件丢失、损坏与系统报错处理指南 《CS2》上海 Major 淘汰赛这两天也在如火如荼的进行当中,相信有很多go学长在游戏运行时会遇到各种文件丢失、损坏以及系统报错问题,给玩家带来极大的困扰。今天,我们就来详细探讨一下《C…...

MCPTT 与BTC

MCPTT(Mission Critical Push-to-Talk)和B-TrunC(宽带集群)是两种关键通信标准,它们分别由不同的组织制定和推广。 MCPTT(Mission Critical Push-to-Talk)标准由3GPP(第三代合作伙伴…...

aardio - 汉字笔顺处理 - json转sqlite转png

本代码需要最新版 godking.conn 库,请自行下载! 如果没有安装 odbc for sqlite 驱动,可以使用 godking.conn.driver.sqlite3.install() 安装。 也可以在此下载自行安装:http://www.chengxu.online/show.asp?softid267 1、将js…...

图的遍历之DFS邻接矩阵法

本题要求实现一个函数,对给定的用邻接矩阵存储的无向无权图,以及一个顶点的编号v,打印以v为起点的一个深度优先搜索序列。 当搜索路径不唯一时,总是选取编号较小的邻接点。 本题保证输入的数据(顶点数量、起点的编号等…...

kdenlive 一个视频一左一右拼接(抖音长屏转宽屏)

参考kdenlive 剪裁_Kdenlive中的分层合成-CSDN博客 kdenlive 一个视频一左一右拼接(抖音长屏转宽屏) 按照图片的操作...

深度学习-53-AI应用实战之基于labelImg和labelme的手动标注

文章目录 1 labelImg1.1 简介1.2 安装使用1.3 文件格式1.3.1 pascalVOC格式1.3.2 yolo格式1.4 验证显示2 labelme2.1 简介2.2 安装使用2.3 labelme转换为yolo3 参考附录1 labelImg 1.1 简介 labelImg(label image)是一个开源的图像标注工具,用于创建图像标注数据集。它提供了…...

白鲸优化算法原理,白鲸算法公式,白鲸算法应用(白鲸算法测试效果,白鲸算法优化BP神经网络,白鲸算法路径优化)

‌目录 白鲸算法主要原理 白鲸算法主要公式 白鲸算法应用案例 白鲸算法主要原理 白鲸优化算法(Beluga Whale Optimization Algorithm,BWO)是一种基于种群的元启发式优化算法,灵感来源于白鲸的生活行为。‌该算法通过模拟白鲸的游泳、捕食和鲸落行为来实现模型参数的优化…...

KubeEdge、ThingsBoard 和 CnosDB:智能物联网平台的完美组合

概述 在数字化时代,物联网(IoT)正在改变我们的生活和工作方式。KubeEdge、ThingsBoard 和 CnosDB 是三个领先的开源平台,它们在物联网领域各自发挥着重要的作用,并且可以无缝集成,为用户提供强大的解决方案…...

最简单的线性回归神经网络

数据: # 线性回归 import torch import numpy as np import matplotlib.pyplot as plt# 随机种子,确保每次运行结果一致 torch.manual_seed(42)# 生成训练数据 X torch.randn(100, 3) # 100 个样本,每个样本 3 个特征 true_w torch.tenso…...

[软件工程]九.可依赖系统(Dependable Systems)

9.1什么是系统的可靠性(reliability) 系统的可靠性反映了用户对系统的信任程度。它反映了用户对其能够按照预期运行且正常使用中不会失效的信心程度。 9.2什么是可依赖性(dependablity)的目的 其目的是覆盖系统的可用性&#x…...

浏览器解析页面流程

从输入一个url到页面解析完成的流程 1. 网络进程 1. 获取url 浏览器首先判断输入的url是否有http缓存,如果有则直接从http缓存中读取数据并显示。如果没有,则进行下一步。进行DNS解析,获取域名对应的IP地址。 2.下载html文件 浏览器根据I…...

鸿蒙实现视频播放功能

目录: 1、鸿蒙视频功能介绍2、AVPlayer组件实现视频播放2.1、播放功能的逻辑处理2.2、页面调用渲染2.3、缓存播放信息 3、video组件实现视频播放3.1、鸿蒙官网实现代码3.2、通过xml布局文件代码实现I. 创建项目II. 定义布局文件III. 实现音频和视频播放功能IV. 音频…...

RabbitMQ介绍及安装

文章目录 一. MQ二. RabbitMQ三. RabbitMQ作用四. MQ产品对比五. 安装RabbitMQ1. 安装erlang2. 安装rabbitMQ3. 安装RabbitMQ管理界⾯4. 启动服务5. 访问界面6. 添加管理员用户7. 重新登录 一. MQ MQ( Message queue ), 从字⾯意思上看, 本质是个队列, FIFO 先⼊先出&#xff…...

第五节、电机多段运动【51单片机-TB6600驱动器-步进电机教程】

摘要:本节介绍用控制步进电机三个主要参数角度、速度、方向,实现简单的步进电机多段控制 一、目标功能 输入多个目标角度,设定好步进电机速度,实现步进电机多段转动 二、计算过程 2.1 速度计算 根据第三节内容,定时器…...

docker run 设置启动命令

在使用 docker run 命令时,你可以通过指定启动命令来覆盖 Docker 镜像中的默认入口点或命令。具体来说,你可以通过以下两种方式来设置启动命令: 覆盖 CMD: 你可以通过在 docker run 命令的最后部分提供命令来覆盖镜像的默认 CMD 指…...

嵌入式蓝桥杯学习拓展 LCD翻转显示

通过配置SS和GS两个标志位,实现扫描方向的切换。 将lcd.c的REG_932X_Init函数进行部分修改。 将LCD_WriteReg(R1, 0x0000);修改为LCD_WriteReg(R1,0x0100); 将LCD_WriteReg(R96, 0x2700); 修改为LCD_WriteReg(R96, 0xA700); void REG_932X_Init1(void) {LCD_Wr…...

SQLite 语法

SQLite 语法 SQLite 是一种轻量级的数据库管理系统,它遵循 SQL(结构化查询语言)标准。SQLite 的语法相对简单,易于学习和使用。本文将详细介绍 SQLite 的基本语法,包括数据库的创建、表的创建、数据的插入、查询、更新…...

ZLMediaKit+wvp (ffmpeg+obs)推拉流测试

这里使用了两种方式: ffmpeg命令和 OBS OBS推流在网上找了些基本没有说明白的, 在ZLMediaKit的issues中看到了一个好大哥的提问在此记录一下 使用OBS推流,rtmp,报鉴权失败 推流 1. ffmpeg命令推流 官方说明文档地址: 推流规则 rtsp://192.168.1.4:10554…...

【开源免费】基于SpringBoot+Vue.JS高校学科竞赛平台(JAVA毕业设计)

博主说明:本文项目编号 T 075 ,文末自助获取源码 \color{red}{T075,文末自助获取源码} T075,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

lvgl9 Line(lv_line) 控件使用指南

文章目录 前言主体1. **Line 控件概述**2. **使用场景**3. **控件的样式**4. **设置点**5. **自动大小**6. **y 坐标反转**7. **事件处理**8. **示例代码** 总结 前言 在图形界面设计中,直线绘制是非常常见且重要的功能之一,尤其是在需要进行图形表示、…...

EasyAnimateV5 视频生成大模型原理详解与模型使用

在数字内容创作中,视频扮演的角色日益重要。然而,创作高质量视频通常耗时且昂贵。EasyAnimate 系列旨在利用人工智能技术简化这一过程。EasyAnimateV5 建立在其前代版本的基础之上,不仅在质量上有所提升,还在多模态数据处理和跨语…...

【Copilot 】TAB keybinding not working on JetBrains Client

pycharm ssh 远程到ubuntu24.04 发现tab就是tab,无法输出copilot给出的自动补全到便捷器里。禁用host的copilot插件,重新启动ide就好了。解决办法 参考大神的办法删除主机和客户端插件中的 Copilot插件。 仅在客户端中重新安装 Copilot 插件。 我只是禁用也可以 对比了键盘映…...

leetcode刷题——二叉树(1)

目录 1、递归遍历二叉树 2、迭代法遍历二叉树(通过while循环) 3、二叉树的层序遍历 4、二叉树的层次遍历 II 5、二叉树的右视图 6、二叉树的层平均值 7、N叉树的层序遍历 8、在每个树行中找最大值 9、填充每个节点的下一个右侧节点指针 10、填…...

HTML5教程-表格宽度设置,最大宽度,自动宽度

HTML表格宽度 参考:html table width HTML表格是网页设计中常用的元素之一,可以用来展示数据、创建布局等。表格的宽度是一个重要的参数,可以通过不同的方式来设置表格的宽度,本文将详细介绍HTML表格宽度的不同设置方式和示例代…...

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…...

力扣-图论-4【算法学习day.54】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...

WiFi受限不再愁,电脑无网络快速修复指南

有时在试图连接WiFi时,会发现网络连接受限,或无法正常访问互联网。这种情况不仅影响了工作效率,还可能错过重要的信息。那么,究竟是什么原因导致了电脑WiFi连接受限呢?又该如何解决这一问题呢?小A今天就来教…...

《Java异常处理》

目录 一、异常的概念与分类 二、异常处理机制 三、异常的抛出 四、自定义异常 五、异常处理的最佳实践 在 Java 编程中,异常处理是保障程序健壮性和稳定性的关键环节。有效地处理异常能够避免程序因错误而崩溃,同时提供友好的错误提示信息&#xff…...

清风数学建模学习笔记——Topsis法

数模评价类(2)——Topsis法 概述 Topsis:Technique for Order Preference by Similarity to Ideal Solution 也称优劣解距离法,该方法的基本思想是,通过计算每个备选方案与理想解和负理想解之间的距离,从而评估每个…...

JVM 面试题

Java 虚拟机(JVM)是运行 Java 程序的引擎,它是 Java 语言 “一次编译,处处运行” 的核心技术。JVM 的主要任务是将 Java 字节码(Bytecode)解释成机器码并执行,负责内存管理、线程管理、垃圾回收…...

C语言蓝桥杯2023年省赛真题

文章目录 持续更新中...第一题题目描述输入格式输出格式样例输出提示 2 第二题题目描述 第三题题目描述输入格式输出格式样例输入样例输出 第四题题目描述输入格式输出格式样例输入样例输出提示 第四题题目描述输入格式输出格式样例输入样例输出提示 第五题题目描述输入格式输出…...

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源(如日志文件、消息队列、网络数据、文件系统、数据库等)收集数据,并将…...

哈希处理海量数据

接下来我们将以问题的形式来介绍如何用hash处理海量数据。 1.问题1 (位图) 给定100亿个整数,设计算法找到只出现一次的。 1.1问题分析 100亿个整数,一个整数占用4byte,那么就需要约40G左右的空间来存储。显然常见的…...

Go语言基础教程1

Go语言基础教程 目录 变量声明与使用基本数据类型常量切片操作字符串处理指针格式化输出参数 一、变量声明 1.1 基本变量声明 // 标准声明 var variableName variableType// 示例 var age int var name string1.2 变量声明与初始化 // 显式类型声明 var age int 30// 类…...