CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)
CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)
目录
- CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)
- 预测效果
- 基本介绍
- CNN-GRU卷积门控循环单元时间序列预测
- 一、引言
- 1.1、研究背景与意义
- 1.2、研究现状
- 1.3、研究目的与内容
- 二、理论基础
- 2.1、卷积神经网络(CNN)
- 2.2、门控循环单元(GRU)
- 2.3、CNN-GRU模型
- 三、模型构建与实现
- 3.1、数据预处理
- 3.2、模型结构设计
- 3.3、模型训练与优化
- 四、实验与分析
- 4.1、实验数据与设置
- 4.2、结果展示
- 五、结论与展望
- 5.1、研究总结
- 5.2、研究限制
- 5.3、未来研究方向
- 程序设计
- 参考资料
预测效果
基本介绍
1.Matlab实现CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)。
2.输出MAE 、 MAPE、MSE、RMSE、R2多指标评价,运行环境Matlab2023及以上。
3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。
CNN-GRU卷积门控循环单元时间序列预测
一、引言
1.1、研究背景与意义
时间序列预测是数据分析中的一个重要分支,它涉及对按时间顺序排列的数据进行建模和分析,以预测未来的趋势和变化。这种技术在金融、经济、气象、医疗等多个领域具有广泛的应用,例如股票价格预测、天气预报、疾病传播趋势分析等。随着数据量的增加和计算能力的提升,利用深度学习技术进行时间序列预测已成为研究的热点。
1.2、研究现状
目前,时间序列预测的方法主要包括传统统计模型如ARIMA(自回归积分滑动平均模型)和现代机器学习方法如LSTM(长短期记忆网络)和GRU(门控循环单元)。这些方法在处理不同类型的时间序列数据时各有优劣。例如,ARIMA模型在处理线性关系较强的时间序列时表现良好,但对于非线性、高度复杂的时间序列数据则力不从心。而LSTM和GRU虽然能够处理长期依赖关系,但在计算资源和训练时间上通常需求较高。
1.3、研究目的与内容
为了提高时间序列预测的准确性和效率,本文提出了一种结合卷积神经网络(CNN)和门控循环单元(GRU)的混合模型CNN-GRU。该模型利用CNN的强大特征提取能力和GRU的有效序列处理能力,旨在解决复杂时间序列预测问题。本文将详细介绍模型的架构设计、训练过程,并通过实验验证其在多种时间序列预测任务中的性能。
二、理论基础
2.1、卷积神经网络(CNN)
卷积神经网络(CNN)最初是为图像处理设计的,其核心在于通过卷积层自动提取输入数据的关键特征。在时间序列预测领域,CNN通过一维卷积核沿时间轴滑动,捕捉时间序列的局部模式。这种特性使得CNN非常适合于提取时间序列数据中的短期依赖关系和局部特征。
2.2、门控循环单元(GRU)
门控循环单元(GRU)是循环神经网络(RNN)的一种变体,旨在解决长期依赖问题和梯度消失问题。GRU通过更新门和重置门控制信息的流动,使得模型能够记住重要的长期信息,同时忽略不相关的短期信息。这使得GRU在处理序列数据时既高效又能保持较好的性能。
2.3、CNN-GRU模型
CNN-GRU模型结合了CNN和GRU的优点。首先,CNN层通过卷积操作提取时间序列的局部特征,然后将这些特征传递给GRU层进行处理。GRU层利用其门控机制捕捉这些特征中的长期依赖关系,从而实现更准确的时间序列预测。这种结合方式不仅提高了模型对复杂时间序列的处理能力,还增强了模型的泛化能力。
三、模型构建与实现
3.1、数据预处理
在构建CNN-GRU模型之前,首先需要对时间序列数据进行预处理。归一化是将数据按照一定的比例缩放,使得不同特征的数据能在相同的尺度上进行比较和计算。这些预处理步骤对于提高模型的训练效率和预测精度至关重要。
3.2、模型结构设计
CNN-GRU模型的结构设计主要包括卷积层、GRU层和全连接层。卷积层通过多个卷积核提取时间序列的不同尺度的局部特征。卷积层的输出经过池化层降维后,输入到GRU层。GRU层通过其门控机制学习时间序列的长期依赖关系,最终通过全连接层输出预测结果。
3.3、模型训练与优化
模型训练过程包括选择优化算法、损失函数和学习率等超参数。在本研究中,采用Adam优化算法来更新模型参数。
四、实验与分析
4.1、实验数据与设置
为了验证CNN-GRU模型的性能。实验环境设置为MATLAB2020b,利用其深度学习工具箱进行模型构建和训练。
4.2、结果展示
实验结果表明,CNN-GRU模型在多种时间序列预测任务中均表现出较高的预测精度和效率。具体来说,模型的均方根误差(RMSE)和平均绝对误差(MAE)均低于其他对比模型,显示出其在预测准确性上的优势。
五、结论与展望
5.1、研究总结
本文提出了一种基于CNN和GRU的混合模型CNN-GRU,用于时间序列预测。实验结果表明,该模型能够有效提高预测精度,特别是在处理具有复杂模式和长期依赖关系的时间序列数据时表现出色。CNN-GRU模型通过利用CNN提取时间序列的局部特征,再通过GRU建模长期依赖关系,实现了精确的预测。
5.2、研究限制
尽管CNN-GRU模型在多个数据集上表现出良好的性能,但其在处理极端事件预测和高度非线性数据时的能力还需进一步研究。此外,模型的训练时间较长,对于实时性要求高的应用可能是一个挑战。
5.3、未来研究方向
未来的研究可以探索更多的模型优化技术,如模型结构的调整和超参数的选择,以进一步提高预测性能和效率。同时,将CNN-GRU模型应用于更多领域的时间序列预测问题也是一个值得探索的方向。
程序设计
- CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)
%% 清空环境变量
layers0 = [ ...% 输入特征sequenceInputLayer([numFeatures,1,1],'name','input') %输入层设置sequenceFoldingLayer('name','fold') %使用序列折叠层对图像序列的时间步长进行独立的卷积运算。% CNN特征提取convolution2dLayer([2,1],4,'Stride',[1,1],'name','conv1') %添加卷积层,64,1表示过滤器大小,10过滤器个数,Stride是垂直和水平过滤的步长batchNormalizationLayer('name','batchnorm1') % BN层,用于加速训练过程,防止梯度消失或梯度爆炸reluLayer('name','relu1') % ReLU激活层,用于保持输出的非线性性及修正梯度的问题% 池化层maxPooling2dLayer([2,1],'Stride',2,'Padding','same','name','maxpool') % 第一层池化层,包括3x3大小的池化窗口,步长为1,same填充方式% 展开层sequenceUnfoldingLayer('name','unfold') %独立的卷积运行结束后,要将序列恢复%平滑层flattenLayer('name','flatten')gruLayer(25,'Outputmode','last','name','hidden1') dropoutLayer(0.2,'name','dropout_1') % Dropout层,以概率为0.2丢弃输入fullyConnectedLayer(1,'name','fullconnect') % 全连接层设置(影响输出维度)(cell层出来的输出层) %regressionLayer('Name','output') ];lgraph0 = layerGraph(layers0);
lgraph0 = connectLayers(lgraph0,'fold/miniBatchSize','unfold/miniBatchSize');%% Set the hyper parameters for unet training
options0 = trainingOptions('adam', ... % 优化算法Adam'MaxEpochs', 150, ... % 最大训练次数'GradientThreshold', 1, ... % 梯度阈值'InitialLearnRate', 0.01, ... % 初始学习率'LearnRateSchedule', 'piecewise', ... % 学习率调整'LearnRateDropPeriod',70, ... % 训练100次后开始调整学习率'LearnRateDropFactor',0.01, ... % 学习率调整因子'L2Regularization', 0.001, ... % 正则化参数'ExecutionEnvironment', 'cpu',... % 训练环境'Verbose', 1, ... % 关闭优化过程'Plots', 'none'); % 画出曲线
% % start training
% 训练
tic
net = trainNetwork(trainD,targetD',lgraph0,options0);
toc
%analyzeNetwork(net);% 查看网络结构
% 预测
t_sim1 = predict(net, trainD);
t_sim2 = predict(net, testD);
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/127626816
[2] https://blog.csdn.net/kjm13182345320/article/details/127179100
相关文章:
CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)
CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据) 目录 CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)预测效果基本介绍CNN-GRU卷积门控循环单元时间序列预测一、引言1.1、研究背景与意义1.2、研究现状1…...
Ubuntu 顶部状态栏 配置,gnu扩展程序
顶部状态栏 默认没有配置、隐藏的地方 安装使用Hide Top Bar 或Just Perfection等进行配置 1 安装 sudo apt install gnome-shell-extension-manager2 打开 安装的“扩展管理器” 3. 对顶部状态栏进行配置 使用Hide Top Bar 智能隐藏,或者使用Just Perfection 直…...
React应用深度优化与调试实战指南
一、渲染性能优化进阶 1.1 精细化渲染控制 typescript 复制 // components/HeavyComponent.tsx import React, { memo, useMemo } from react;interface Item {id: string;complexData: {// 复杂嵌套结构}; }const HeavyComponent memo(({ items }: { items: Item[] }) &g…...
Spring中的事件和事件监听器是如何工作的?
目录 一、事件(Event) 二、事件发布器(Event Publisher) 三、事件监听器(Event Listener) 四、使用场景 五、总结 以下是关于Spring中的事件和事件监听器的介绍与使用说明,结合了使用场景&…...
Vue.js组件开发-实现多个文件附件压缩下载
在 Vue 项目中实现多个附件压缩下载,可以借助 jszip 库来创建压缩文件,以及 file-saver 库来保存生成的压缩文件。 步骤 1:安装依赖 首先,在 Vue 项目中安装 jszip 和 file-saver: npm install jszip file-saver步骤…...
基于dlib/face recognition人脸识别推拉流实现
目录 一.环境搭建 二.推拉流代码 三.人脸检测推拉流 一.环境搭建 1.下载RTSP服务器MediaMTX与FFmpeg FFmpeg是一款功能强大的开源多媒体处理工具,而MediaMTX则是一个轻量级的流媒体服务器。两者结合,可以实现将本地视频或者实时摄像头画面推送到RTSP流,从而实现视频…...
qt QNetworkRequest详解
1、概述 QNetworkRequest是Qt网络模块中的一个核心类,专门用于处理网络请求。它封装了网络请求的所有关键信息,包括请求的URL、HTTP头部信息等,使得开发者能够方便地在Qt应用程序中执行网络操作,如文件下载、网页内容获取等。QNe…...
uvm timeout的哪些事
如下图所示,设置timeout并未生效,原因多了一个空格,坑 进一步分析,默认是overidable的 是否加括号呢,如下所示,这两个造型都可以,中间有空格也行 那么,我加上单位可以吗,…...
JavaScript赋能智能网页设计
构建AI驱动的实时风格迁移系统 案例概述 本案例将实现一个基于深度学习的实时图像风格迁移系统,通过浏览器端神经网络推理实现以下高级特性: WebAssembly加速的ONNX模型推理 WebGL Shader实现的风格混合算法 WebRTC实时视频流处理 基于Web Workers的…...
全面了解 Web3 AIGC 和 AI Agent 的创新先锋 MelodAI
不管是在传统领域还是 Crypto,AI 都是公认的最有前景的赛道。随着数字内容需求的爆炸式增长和技术的快速迭代,Web3 AIGC(AI生成内容)和 AI Agent(人工智能代理)正成为两大关键赛道。 AIGC 通过 AI 技术生成…...
leetcode_链表 234.回文链表
234.回文链表 给你一个单链表的头节点head,请你判断该链表是否为回文链表。如果是, 返回 true ; 否则, 返回false。思路: 找到中间节点(快慢指针法)反转后半部分的链表比较前半部分和后半部分链表 # Definition for singly-linked list. # class List…...
cloc下载和使用
cloc(Count Lines of Code)是一个跨平台的命令行工具,用于计算代码行数。以下是下载和使用 cloc 的步骤: 下载 cloc 对于 Windows 用户: 访问 cloc 的 GitHub 仓库:https://github.com/AlDanial/cloc在 …...
在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘
在 Windows 系统上,如果你使用的是 WSL(Windows Subsystem for Linux)并安装了 Ubuntu,你可以将 Ubuntu 从 C 盘 迁移到 D 盘。迁移过程涉及导出当前的 Ubuntu 发行版,然后将其导入到 D 盘的目标目录。以下是详细的步骤…...
【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}
文章目录 介绍redis的引入 分布式系统单机架构应用服务和数据库服务分离【负载均衡】引入更多的应用服务器节点 单机架构 分布式是什么 数据库分离和负载均衡 理解负载均衡 数据库读写分离 引入缓存 数据库分库分表 引入微服务 介绍 The open source, in-memory data store us…...
wow-agent---task4 MetaGPT初体验
先说坑: 1.使用git clone模式安装metagpt 2.模型尽量使用在线模型或本地高参数模型。 这里使用python3.10.11调试成功 一,安装 安装 | MetaGPT,参考这里的以开发模型进行安装 git clone https://github.com/geekan/MetaGPT.git cd /you…...
Leetcode::3432. 统计元素和差值为偶数的分区方案
3432. 统计元素和差值为偶数的分区方案 已解答 简单 相关企业 提示 给你一个长度为 n 的整数数组 nums 。 分区 是指将数组按照下标 i (0 < i < n - 1)划分成两个 非空 子数组,其中: 左子数组包含区间 [0, i] 内的所…...
linux如何修改密码,要在CentOS 7系统中修改密码
要在CentOS 7系统中修改密码,你可以按照以下步骤操作: 步骤 1: 登录到系统 在登录提示符 localhost login: 后输入你的用户名。输入密码并按回车键。 步骤 2: 修改密码 登录后,使用 passwd 命令来修改密码: passwd 系统会提…...
GIS与相关专业软件汇总
闲来无事突然想整理一下看看 GIS及相关领域 究竟有多少软件或者工具包等。 我询问了几个AI工具并汇总了一个软件汇总,不搜不知道,一搜吓一跳,搜索出来了大量的软件,大部分软件或者工具包都没有见过,不知大家还有没有要…...
云计算架构学习之LNMP架构部署、架构拆分、负载均衡-会话保持
一.LNMP架构部署 1.1. LNMP服务搭建 1.磁盘信息 2.内存 3.负载信息 4.Nginx你们公司都用来干嘛 5.文件句柄(文件描述符 打开文件最大数量) 6.你处理过系统中的漏洞吗 SSH漏洞 7.你写过什么shell脚本 8.监控通过什么告警 zabbix 具体监控哪些内容 9.mysql redis查询 你好H…...
mamba论文学习
rnn 1986 训练速度慢 testing很快 但是很快就忘了 lstm 1997 训练速度慢 testing很快 但是也会忘(序列很长的时候) GRU实在lstm的基础上改进,改变了一些门 transformer2017 训练很快,testing慢些,时间复杂度高&am…...
uva 1354 Mobile Computing
原题: 房间中有一个天平,房间的宽度为r,有s个砝码,每个砝码的重量是 w i w_i wi。设计一个尽量宽,但是宽度不能超过r的天平,挂住所有砝码。天平全部由长度为1的木棍组成,木棍的每一端要么挂一…...
理解C++中的右值引用
右值引用,顾名思义,就是对一个右值进行引用,或者说给右值一个别名。右值引用的规则和左值一用一模一样,都是对一个值或者对象起个别名。 1. 右值引用和左值引用一样,在定义的同时必须立即赋值,如果不立即赋…...
约数个数(简单)
给定 nn 个正整数 aiai,请你输出这些数的乘积的约数个数,答案对 10971097 取模。 输入格式 第一行包含整数 nn。 接下来 nn 行,每行包含一个整数 aiai。 输出格式 输出一个整数,表示所给正整数的乘积的约数个数,答…...
Day33:字符串的切片
在 Python 中,**切片(Slicing)**是对字符串(以及其他序列类型,如列表、元组等)进行提取部分内容的强大工具。通过切片,你可以非常方便地提取字符串的子字符串、倒序字符串,甚至进行步…...
基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真
目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于回归分析法的光伏发电系统最大功率计算simulink建模与仿真。选择回归法进行最大功率点的追踪,使用光强和温度作为影响因素,电压作为输出进行建模。…...
redis离线安装部署详解(包括一键启动)
像上文一样 因为在学习的过程中没有查到一个详细的离线部署方案 所以在自己学习之后想要自己写一个文章 希望可以帮助后续学习redis离线部署的朋友少走一线弯路 首先就是下载安装包 可以自己在本地下载再传到机器上(通过xftp或lrzsz都可) http://d…...
Coze插件开发之基于已有服务创建并上架到扣子商店
Coze插件开发之基于已有服务创建并上架到扣子商店 在应用开发中,需要调用各种插件,以快速进行开发。但有时需要调用的插件在扣子商店里没有,那怎么办呢? 今天就来带大家快速基于已有服务创建一个新的插件 简单来讲,就是…...
【Unity】 HTFramework框架(五十九)快速开发编辑器工具(Assembly Viewer + ILSpy)
更新日期:2025年1月23日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 开发编辑器工具MouseRayTarget焦点视角Collider线框Assembly Viewer搜索程序集ILSpy反编译程序集搜索GizmosElement类找到Gizmos菜单找到Gizmos窗口分析A…...
【Linux】统计文本中每行指定位置出现的字符串的次数
统计文本中每行指定位置出现的字符串的次数 假定情景 某些项目,会把某个特定事件记录到Log中并且落盘(保持到硬盘)。基于落盘后的日志,要统计这些日志里产生该特定事件的次数 统计脚本 可以写一个sh脚本,来解析某个…...
牛客周赛round78 B,C
B.一起做很甜的梦 题意:就是输出n个数(1-n),使输出的序列中任意选连续的小序列(小序列长度>2&&<n-1)不符合排列(例如如果所选长度为2,在所有长度为2 的小序列里不能出…...
【DB】Oracle存储过程
目录 什么是存储过程? 为什么要使用存储过程? 创建存储过程 无参存储过程语法: 带参存储过程语法: 带有输入参数的存储过程 带有输出参数的存储过程 带有输入输出参数的存储过程 带有异常处理的存储过程 存储过程中游标…...
亚博microros小车-原生ubuntu支持系列:14雷达跟踪与雷达守卫
背景知识 激光雷达的数据格式参见: 亚博microros小车-原生ubuntu支持系列:13 激光雷达避障-CSDN博客 本节体验雷达跟踪跟守卫 PID控制 从百度百科摘一段介绍 比例积分微分控制(proportional-integral-derivative control)&am…...
c++迷宫问题(migong)
今天的题目叫“迷宫问题(migong)”,是“DFS深度优先搜索 递归”一类的。 题目描述 设有一个N*N(2<N<10)方格的迷宫,入口和出口分别在左上角和右上角。迷宫格子中 分别放0和1,0表示可通,1表示不能,入…...
深度学习项目--基于LSTM的糖尿病预测探究(pytorch实现)
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 LSTM模型一直是一个很经典的模型,一般用于序列数据预测,这个可以很好的挖掘数据上下文信息,本文将使用LSTM进行糖尿病…...
Java Swing 基础组件详解 [论文投稿-第四届智能系统、通信与计算机网络]
大会官网:www.icisccn.net Java Swing 是一个功能强大的 GUI 工具包,提供了丰富的组件库用于构建跨平台的桌面应用程序。本文将详细讲解 Swing 的基础组件,包括其作用、使用方法以及示例代码,帮助你快速掌握 Swing 的核心知识。 一…...
深圳大学-智能网络与计算-实验三:网络容量优化分析实验
实验目的与要求 了解什么是凸优化问题;学会使用 Matlab CVX 工具箱解决最优功率分配问题,使得信道容量最大化;了解注水算法; 方法,步骤 深入理解最优功率分配问题。使用 CVX 找出最优的功率分配。使用凸优化数学分析…...
嵌入式基础 -- PCIe 控制器中断管理之MSI与MSI-X简介
PCIe 控制器中断管理技术文档 1. 背景 在现代计算机系统中,中断是设备与 CPU 通信的重要机制,PCIe 控制器提供了从传统线中断到基于消息的中断(MSI/MSI-X)的演进,以提升中断处理效率和可扩展性。x86 和 ARM 架构虽然…...
Android-okhttp详解
目录 一,介绍 二,简单使用 三,流程分析 四,分发器 五,拦截器 5.1 重试及重定向拦截器 5.1.1 重试 5.1.2 重定向 5.2 桥接拦截器 5.3 缓存拦截器 5.4 连接拦截器 5.5 请求服务器拦截器 一,介绍 OkHttp是当下…...
CNN-BiLSTM卷积双向长短期记忆神经网络时间序列预测(Matlab完整源码和数据)
CNN-BiLSTM卷积双向长短期记忆神经网络时间序列预测(Matlab完整源码和数据) 目录 CNN-BiLSTM卷积双向长短期记忆神经网络时间序列预测(Matlab完整源码和数据)预测效果基本介绍 CNN-BiLSTM卷积双向长短期记忆神经网络时间序列预测一…...
数字图像处理:实验七
uu们!这是我们目前数字图像系列的最后一张,之后有关人工智能结合的数字图像处理咸鱼哥正在学习和创作中,所以还请大家给咸鱼哥点时间,同时也提前预祝大家2025年新春快乐!(咸鱼哥真诚的祝愿每一个人…...
Excel分区间统计分析(等步长、不等步长、多维度)
在数据分析过程中,可能会需要统计不同数据区间的人数、某个数据区间的平均值或者进行分组区间统计,本文从excel函数到数据透视表的方法,从简单需求到复杂需求,采用不同的方法进行讲解,尤其是通过数据透视表的强大功能大…...
QWindow类使用介绍与代码演示
深入浅出C++ Qt开发技术专栏 https://blog.csdn.net/yao_hou/category_9276099.html?spm=1001.2014.3001.5482 文章目录 QWindow主要功能和特性常用的函数示例代码适用场景QWindow父类QSurface`QSurface` 类概述主要功能和特性常用的函数相关的子类示例代码`QSurface` 的实际应…...
OpenCV图像显示imshow()函数——详解
OpenCV图像显示imshow()函数——详解 本文目录: 零、时光宝盒 一、OpenCV 图像显示使用imshow()函数语法 二、imshow()显示图片时发生图片显示不全的解决方法 解决办法(1) 解决办法(2) 总结 三、imshow()图像显…...
Oracle 12c 中的 CDB和PDB的启动和关闭
一、简介 Oracle 12c引入了多租户架构,允许一个容器数据库(Container Database, CDB)托管多个独立的可插拔数据库(Pluggable Database, PDB)。本文档旨在详细描述如何启动和关闭CDB及PDB。 二、容器数据库 (CDB) 2.1…...
二次封装的方法
二次封装 我们开发中经常需要封装一些第三方组件,那么父组件应该怎么传值,怎么调用封装好的组件原有的属性、插槽、方法,一个个调用虽然可行,但十分麻烦,我们一起来看更简便的方法。 二次封装组件,属性怎…...
【BQ3568HM开发板】如何在OpenHarmony上通过校园网的上网认证
引言 前面已经对BQ3568HM开发板进行了初步测试,后面我要实现MQTT的工作,但是遇到一个问题,就是开发板无法通过校园网的认证操作。未认证的话会,学校使用的深澜软件系统会屏蔽所有除了认证用的流量。好在我们学校使用的认证系统和…...
安装Ubuntu22.04
1.引用教程 如何安装Ubuntu Server 22.04 LTS_ubuntu22.04 server-CSDN博客 2.空间分配 要使用 docker 比较多所以分别的 docker 空间大...
Charles 4.6.7 浏览器网络调试指南:流量过滤与分析(六)
1. 概述 在网络调试和优化过程中,Charles 不仅可以实现简单的网络抓包操作,还支持更高级的抓包技巧和流量分析功能。这些功能能够帮助开发者深入挖掘网络请求的细节,为复杂问题提供有效的解决方案。本文将重点讲解 Charles 的过滤规则、自定…...
浅拷贝(Shallow Copy)和深拷贝(Deep Copy)
浅拷贝(Shallow Copy)和深拷贝(Deep Copy)是对象复制的两种方式,它们在处理对象内部引用类型成员时有不同的行为。下面我将详细解释这两种拷贝的区别,并提供具体的 Java 示例代码。 浅拷贝(Shal…...
解决双系统引导问题:Ubuntu 启动时不显示 Windows 选项的处理方法
方法 1:检查 GRUB 引导菜单是否隐藏 启动进入 Ubuntu 系统。打开终端,输入以下命令编辑 GRUB 配置文件:sudo nano /etc/default/grub检查以下配置项: GRUB_TIMEOUT0:如果是 0,将其改为一个较大的值&#x…...