【Java ee初阶】初始网络
一、IP地址
概念
IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。
就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。
格式
IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。
如:100.4.5.6。
二、端口号
概念
在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程。
简单说:端口号用于定位主机中的进程。
类似发送快递时,不光需要指定收货地址(IP地址),还需要指定收货人(端口号)。
格式
端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据。
三、协议
概念
协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵守的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。
协议(protocol)最终体现为在网络上传输的数据包的格式。
作用
为什么需要协议?
就好比见网友,彼此协商胸口插支玫瑰花见面,这就是一种提前的约定,也可以称之为协议。
计算机之间的传输媒介是光信号和电信号。通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。
1、计算机生产商有很多;
2、计算机操作系统,也有很多;
3、计算机网络硬件设备,还是有很多;
如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?
就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;
五元组
在TCP/IP协议中,用五元组来标识一个网络通信:
- 源IP:标识源主机
- 源端口号:标识源主机中该次通信发送数据的进程
- 目的IP:标识目的主机
- 目的端口号:标识目的主机中该次通信接收数据的进程
- 协议号:标识发送进程和接收进程双方约定的数据格式
协议分层
对于网络协议来说,往往分成几个层次进行定义。
什么是协议分层?
协议分层类似于打电话时,定义不同的层次的协议:
分层的作用
为什么需要网络协议的分层?
分层最大好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务):
•对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
•对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可。这样能更好的扩展和维护。
OSI七层模型
OSI:即Open System Interconnection,开放系统互连
OSI七层网络模型是⼀个逻辑上的定义和规范:把网络从逻辑上分为了7层。
OSI七层模型是⼀种框架性的设计⽅法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
OSI七层模型划分为以下七层:
TCP/IP五层(或四层)模型
TCP/IP通讯协议采用5层的层级结构,每一层通过调用下一层提供的网络功能完成自身需求。各层功能及特点如下:
应用层
掌握在程序员手中,数据如何使用,由程序员说了算
传输层
不关心中间的传输过程,只关心传输的起点和终点
网络层
负责任意两个节点之间的路径规划
数据链路层
负责两个相邻节点之间的通信,通过网线、光纤、无线信号直接相连的两个设备
物理层
网络通信中以来的硬件设施,网线,光纤,天线等,和程序员的关系不大
网络设备在TCP/IP五层模型中的分层
主机:其操作系统内核实现了从传输层到物理层的内容(TCP/IP五层模型的下四层),考虑应用程序的话,五层都会涉及到;
路由器:实现了从网络层到物理层(TCP/IP五层模型的下三层);
交换机:实现了从数据链路层到物理层(TCP/IP五层模型的下两层);
四、封装
封装和分用
是网络通信中非常关键的环节。
比如,通过qq,发送一个hello给别人:
发送方
1、应用层
用户输入hello,点击“发送按钮”
QQ应用程序能获取到hello字符串
把这个hello构造成“应用层数据包”(按照一定的应用层协议来构造)
应用层协议由很多,每个产品的程序员都是可以“自定义”应用层新协议的。
假设按照下列格式:
发送者的用户id,接受者的用户id,消息的发送时间,消息的正文;
1234,5678,2025-04-13 11:06:00,hello;
实际上过程就是拼接字符串
通过操作系统的API,把这个数据包交给下一层传输层(操作系统内部/内核)
2、传输层(系统内核)
按照传输层的协议,构造出“传输层”数据包
传输层涉及到的协议,主要是TCP和UDP,此处以UDP为例
UDP报头包含源端口和目的端口(还有其他的一些东西)
UDP数据包,包含报头+载荷(应用层数据包)
拼接UDP报头,就类似于快递小哥,包装快递,并且贴标签。
传输层把构造好的传输层的数据包,调用对应的api,交给网络层
*网络协议分层之后,一定是上层调用下层,下层给上层提供服务。不能“乱调”"或者“跨层”调用。
3、网络层
网络层最主要的是“IP协议”
IP协议也会在传输层数据报基础上,填上IP报头
IP报头包括源IP、目的IP。
UDP报头包括源端口、目的端口。
把这个IP数据报,进一步的往下传输给数据链路层
- 数据链路层
数据链路层最主要的协议就是“以太网”(插网线/光纤通信的网络),
(wifi 802.11,5G信号,是用的另外一套)
以太网协议,在IP数据报的基础上,拼接上信息
5、物理层需要把上述0101这样的数据,转换成光信号/电信号/电磁波,通过物理介质,传输出去。
从应用层->物理层,整个过程,“封装”把要传输的hello,一层一层的套上很多辅助信息。
五、分用
接收方
1、物理层收到光电信号,把光电信号转换成0101数字信号,交给数据链路层
2、数据链路层
根据以太网协议,就会进行解析
去掉帧头帧尾,取出载荷 进一步的交给网络层
3. 网络层
IP协议 也会进行解析
也会取出载荷,进一步的交给传输层
4. 传输层
UDP协议,再进行解析
也会取出载荷,进一步交给应用层
5. 应用层
QQ的应用层协议进行解析
把这里的信息提取出来,显示到界面上
小结:封装就像是包装快递,分用就像是拆快递
*关于 “协议类型”
传输层报头中,通过端口号,决定数据交给哪个应用程序 (应用层协议类型就确定了)
网络层报头中,有一个字段描述传输层是使用 TCP 还是 UDP
六、两台主机之间的网络通信流程
交换机从物理层到数据链路层进行分用
解析到数据之后,会对数据重新封装,再次发送出去
举个例子,你快递交给快递小哥
快递小哥需要先把快递拿回公司 (往快递上打标签)
快递公司,把这个快递送到下一个 “中转站”
到了中转站,需要卸货,再装上 (也需要重新打标签)
中间的任意一个 “路由器”“交换机” 都是给很多的主机提供服务
转发的数据也是来自于很多主机的。
由于各个主机使用网络存在随机性,可能导致某个时刻,某个设备,需要传输的数据量就特别大
中间的任意一个 “路由器”“交换机” 都是给很多的主机提供服务
转发的数据也是来自于很多主机的。
由于各个主机使用网络存在随机性,可能导致某个时刻,某个设备,需要传输的数据量就特别大
如果转发的数据量
超出了设备能够转发的速度 “上限”,此时就会产生丢包
类似于堵车?
忙不过来了
此时这样的数据包就会被直接丢弃
堵车,多等一会,最终还是能到达的.
网络数据包,就不一定了,具有时效性的
七、网络编程
网络通信数据 报 / 包 / 帧 / 段
会混着用
实现跨主机通信
了解 网络通信 API
主要关心的是 “传输层” 提供的 API
网络传输数据的基本单位
段 (segment) TCP 协议
报 (datagram) UDP 协议
包 (packet) IP 协议
帧 (frame) 数据链路层的协议
咱们写的程序处于应用层。
传输层 => 物理层 都是由操作系统 / 驱动 / 硬件 已经实现好的。
编写网络程序,咱们做的最主要的工作,调用系统 api 把数据交给传输层
传输层提供的 网络通信的 API,也称为 socket api (网络编程套接字)
原义 指的是 “插槽”
最开始是主板上的特殊的组件
通过这个组件,插上线就能网络通信。
关于TCP和UDP,后面详细章节展开讨论。
TCP: 有连接,可靠传输,面向字节流,全双工。
UDP: 无连接,不可靠传输,面向数据报,全双工。
连接: 网络上的连接,是“虚拟的”“抽象的”
TCP的通信双方就会保存对方的信息
UDP的通信双方不保存对方的信息(如果需要保存,需要应用层自己写代码实现) 丢包,客观存在 可靠传输就是在对抗丢包
可靠传输 TCP会尽可能保证数据报能够被对端收到
“可靠不可靠”和“安全不安全”没关系. 不可靠传输 UDP把数据包发出去之后,就不管了
“TCP不是安全传输” 安全: 数据不容易被黑客截获/破解....
面向字节流 TCP读写数据的基本单位,就是字节(类似于文件操作)
面向数据报 UDP读写数据的基本单位,是一个“数据报”(若干字节构成的结构化数据)
TCP/UDP 全双工 一个信道,双向通信;
半双工 一个信道,单向通信;
相关文章:
【Java ee初阶】初始网络
一、IP地址 概念 IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。 就像我们发送快递一样,需要知道对方的收货地址,快递员才能将包裹送到目的地。 格式 IP…...
LabVIEW 2019 与 NI VISA 20.0 安装及报错处理
在使用 Windows 11 操作系统的电脑上,同时安装了 LabVIEW 2019 32 位和 64 位版本的软件。此前安装的 NI VISA 2024 Q1 版,该版本与 LabVIEW 2019 32 位和 64 位不兼容,之后重新安装了 NI VISA 20.0。从说明书来看,NI VISA 20.0 …...
http协议理解
文章目录 http协议理解基本概念HTTP版本演变版本编年史版本对比未来趋势 HTTP请求/响应结构请求报文响应报文HTTP方法分类对比方法选择原则必须遵守的约束 常见状态码HTTP头部字段HTTPSHTTPS 核心功能说明HTTPS 如何工作? HTTP特点补充知识点启用HTTP/2Nginx 中配置…...
typecho中的Widget设计文档
组成系统的最基本元素 什么是Widget Widget是组成Typecho的最基本元素,除了已经抽象出来的类库外,其它几乎所有的功能都会通过Widget来完成。在实践中我们发现,在博客这种小型但很灵活的系统中实施一些大型框架的思想是不合适的,…...
使用ESPHome烧录固件到ESP32-C3并接入HomeAssistant
文章目录 一、安装ESPHome二、配置ESP32-C3控制灯1.主配置文件esp32c3-luat.yaml2.基础通用配置base.yaml3.密码文件secret.yaml4.围栏灯four_light.yaml5.彩灯rgb_light.yaml6.左右柱灯left_right_light.yaml 三、安装固件四、HomeAssistant配置ESPHome1.直接访问2.配置ESPHom…...
基于STM32、HAL库的CH340N USB转UART收发器 驱动程序设计
一、简介: CH340N是南京沁恒电子生产的一款USB转串口芯片,具有以下特点: 支持USB 2.0全速(12Mbps) 内置时钟,无需外部晶振 支持5V和3.3V电源电压 提供常用的MODEM联络信号 内置上电复位电路 支持Windows/Linux/Mac OSX等多平台驱动 体积小,SOP-8封装 二、硬件接口: CH…...
Spring Boot Controller 如何处理HTTP请求体
Spring Boot (通过Spring MVC) 提供了强大的机制来处理不同 Content-Type 的HTTP请求体。这主要依赖于 HttpMessageConverter 接口的各种实现,它们能够自动将请求体内容转换成Java方法参数。 一、核心机制:HttpMessageConverter Spring MVC会根据…...
【deepseek教学应用】001:deepseek如何撰写教案并自动实现word排版
本文讲述利用deepseek如何撰写教案并自动实现word高效完美排版。 文章目录 一、访问deepseek官网二、输入教案关键词三、格式转换四、word进一步排版 一、访问deepseek官网 官网:https://www.deepseek.com/ 进入主页后,点击【开始对话】,如…...
【Spring Boot 多模块项目】@MapperScan失效、MapperScannerConfigurer 报错终极解决方案
在使用 Spring Boot 构建多模块项目,集成 MyBatis-Plus 时,很多开发者会遇到类似如下启动报错: Error creating bean with name mapperScannerConfigurer ... Caused by: java.lang.IllegalArgumentException: Property basePackage is requ…...
vue 中如何使用region?
vue 中如何使用region? 在 Vue 文件中,你可以使用 //#region 和 //#endregion 注释来创建可折叠的代码区块(类似于 C# 的 region)。这可以显著提高大型 Vue 组件的可读性。 1. 基本用法 在 <script> 部分使用 <script&…...
Spring Boot 启动原理的核心机制
一、核心启动流程概览 Spring Boot 的启动流程可概括为 7 个关键阶段: 1. 加载启动类 (Main Class) 2. 初始化 SpringApplication 实例 3. 加载配置 & 准备环境 (Environment) 4. 创建 ApplicationContext(容器) 5. 刷新容器&#…...
【每天学习一点点】使用Python的pathlib模块分割文件路径
使用Python的pathlib模块分割文件路径 pathlib模块(Python 3.4)提供了面向对象的文件系统路径操作方式,比传统的os.path更加直观和易用。以下是使用pathlib分割文件路径的几种方法: 基本路径分割 from pathlib import Path# 创…...
Qt/C++面试【速通笔记八】—Qt的事件处理机制
在Qt中,事件处理机制是应用程序与用户或系统交互的核心。通过事件处理,Qt能够响应用户的输入、窗口的变化、定时器的触发等各种情况。 1. 事件循环(Event Loop) 在Qt应用程序中,事件循环是事件处理机制的基础。事件循…...
uniapp自定义步骤条(可二开进行调试)
前言 有一个业务需求是需要一个步骤条,但是发现开源的都不太合适,所以就自己写了一个。 开始 test.vue <template><view class"authenticateRecordDetails_container"><!-- 进度 --><view class"authenticateSte…...
uniapp|实现多终端聊天对话组件、表情选择、消息发送
基于UniApp框架,实现跨平台多终端适配的聊天对话组件开发、表情选择交互设计及消息发送,支持文本与表情混合渲染。 目录 聊天界面静态组件实现消息列表布局消息气泡双向布局辅助元素定位与样式静态数据模拟与扩展性设计表情选择器静态模块浮层实现符号网格排列多端样式适配方…...
1.3.1 Linux音频框架alsa详细介绍
ALSA作为对旧OSS系统的替代方案,始于1998年。当时OSS还闭源商业化,因此社区开始开发开源的ALSA。经过多年的发展,ALSA成为Linux内核中音频架构的标准。 结构和架构 ALSA由以下几个主要部分组成: 内核模块: 这是ALSA的…...
R 语言机器学习:为遥感数据处理开启新视角
技术点目录 基础理论、机器学习与数据准备建模与空间预测实践案例与项目了解更多 ——————————————————————————————————————————— 前言综述 在当今科技快速发展的时代,遥感技术为生态学研究提供了海量的数据资源…...
深度 |提“智”向新,奔向未来——当前机器人产业观察
机器人踏着“猫步”在T台走秀、进入工厂协助造车,教育、医疗、城市管理等领域都有了机器人的帮助……今天,机器人已得到广泛应用,走进你我的生活。 伴随着技术日新月异,机器人产业加快提“智”向新。特别是今年以来…...
Web开发-JavaEE应用SpringBoot栈ActuatorSwaggerHeapDump提取自动化
知识点: 1、安全开发-JavaEE-常见依赖-Actuator&Swagger 2、安全开发-JavaEE-安全问题-配置安全&接口测试 一、演示案例-WEB开发-JavaEE-监控依赖-SpringBoot&Actuator&配置安全 SpringBoot Actuator模块提供了生产级别的功能,比如健康…...
AI Agent开发之门:微软官方课程全面解析
AI Agent开发之门:微软官方课程全面解析 引言项目概览10 节核心课程内容详解1. AI 代理简介及应用场景2. 探索 AI Agentic 框架3. 理解 AI Agentic 设计模式4. 工具使用设计模式5. Agentic RAG(检索增强生成)6. 构建可信赖的 AI Agents7. 规划…...
Unity-Shader详解-其五
关于Unity的Shader部分的基础知识其实已经讲解得差不多了,今天我们来一些实例分享: 溶解 效果如下: 代码如下: Shader "Chapter8/chapter8_1" {Properties{// 定义属性[NoScaleOffset]_Albedo("Albedo", 2…...
从零打造个人博客静态页面与TodoList应用:前端开发实战指南
前言 在当今数字时代,拥有个人博客和高效的任务管理工具已成为开发者展示自我和提升生产力的标配。本文将带你从零开始,通过纯前端技术实现一个兼具个人博客静态页面和TodoList任务管理功能的综合应用。无论你是前端新手还是希望巩固基础的中级开发者&a…...
开发者如何优雅应对HTTPS抓包难题
开发者如何优雅应对HTTPS抓包难题:工具实战 深度解析 调试HTTPS接口这件事,真是程序员永远的痛。特别是在移动端、或者遇到客户端集成了第三方安全SDK的项目时,网络调试的门槛几乎成倍提升。你可能也遇到过:Charles不识别证书、…...
Ubuntu 安装远程桌面连接RDP方式
1. 安装 XFCE4 桌面环境 如果你的 Ubuntu 系统默认使用 GNOME 或其它桌面环境,可以安装轻量级的 XFCE4: sudo apt update sudo apt install xfce4 xfce4-goodies 说明:xfce4-goodies 包含额外的插件和工具(如面板插件、终端等&a…...
Ubuntu 22.04 出现 ‘Temporary failure resolving‘ 解决方案
a、使用apt 安装 resolvconf sudo apt-get install resolvconf b、使用 cd /etc/resolvconf/resolv.conf.d/ 进入文件夹,使用 ls 查看目录,会显示 base head tail c、使用 sudo vim base 编辑base文件, 进入时为空,添加 name…...
ubuntu 22.04 换源
参考:清华大学开源软件镜像站 ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...
Java并发编程几个问题的解答
目录 1、以前你编写的Java程序同时能做几件事情?有几个执行流程?main方法执行完,整个程序一定会退出吗?2、早期的电脑一般是单核CPU,但那时我们就可以在编写程序的同时听歌,你觉得其CPU可以同时执行两个程序…...
JavaScript中数组和对象不同遍历方法的顺序规则
在JavaScript中,不同遍历方法的顺序规则和适用场景存在显著差异。以下是主要方法的遍历顺序总结: 一、数组遍历方法 for循环 • 严格按数组索引顺序遍历(0 → length-1) • 支持break和continue中断循环 • 性能最优,…...
C++ STL入门:set 集合容器
C STL入门:set 集合容器 一、核心特性与适用场景 set 是 C STL 提供的关联式容器,基于红黑树实现,具有两大核心特性: 特性表现形式底层原理元素唯一性重复值自动去重插入时进行二叉树键比对自动排序元素默认升序排列红黑树中序遍…...
[论文笔记] 超详细解读DeepSeek v3全论文技术报告
DeepSeek-V3是一个强大的专家混合(Mixture-of-Experts,MoE)语言模型,总共671B参数,每个token激活37B参数(可以理解为有多个专家,但每个token只会选择一部分专家进行推理,所以一个token的预测,只会用到37B参数),DeepSeek-V3 使用了 多头潜在注意力(...
JS 问号(?)运算符避免中间报错
一、场景 在前端开发过程中,有一些情况比如某些属性可能由于渲染数据的时机不同,一开始是null 或者undifine, 这样访问下面的属性的时候就会报错,我们可以给每个层级后面加个? 就可以避免这个错误。 let data {user: {profile: {name: &q…...
4:点云处理—去噪、剪切、调平
1.点云去噪 dev_clear_window ()dev_open_window(0, 0, 560, 560, black, WindowHandle)GenParamNames : [lut,intensity,light_position,disp_pose,alpha]GenParamValues : [color1,coord_z,0.0 0.0 -0.3 1.0,true,1]DispPose : [0,-0.0005,717.04,280,0,20,0]Instructions[0]…...
机器学习实操 第二部分 神经网路和深度学习 第17章 编码器、生成对抗网络和扩散模型
机器学习实操 第二部分 神经网路和深度学习 第17章 编码器、生成对抗网络和扩散模型 内容概要 第17章深入探讨了自编码器(Autoencoders)、生成对抗网络(GANs)和扩散模型(Diffusion Models)。这些模型能够…...
【今日三题】ISBN号码(模拟) / kotori和迷宫(BFS最短路) / 矩阵最长递增路径(dfs)
⭐️个人主页:小羊 ⭐️所属专栏:每日两三题 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 ISBN号码(模拟)kotori和迷宫(BFS最短路)矩阵最长递增路径(dfs) ISBN号码(模拟) ISBN号码 #include <iostream> #incl…...
【记录】HunyuanVideo 文生视频工作流
HunyuanVideo 文生视频工作流指南 概述 本指南详细介绍如何在ComfyUI中使用腾讯混元HunyuanVideo模型进行文本到视频生成的全流程操作,包含环境配置、模型安装和工作流使用说明。 参考:https://comfyui-wiki.com/zh/install/install-comfyui/install-c…...
DevExpressWinForms-布局之TablePanel
布局之TablePanel 在 DevExpress 的控件库中,TablePanel 是一个功能强大且灵活的布局控件,它能够以表格形式组织和排列其他控件,让界面布局更加规整、有序。无论是开发复杂的企业级应用程序,还是设计简洁美观的用户界面ÿ…...
MySQL 数据库初体验
目录 1.1 数据库简介 1.1.1 使用数据库的必要性 1.1.2 数据库的基本概念 1.数据 2.数据库和数据库表 3.数据库管理系统和数据库系统 1.1.3 数据库发展史 1.数据库系统发展史 (1)初级阶段——第一代数据库 (2)中级阶段—…...
flink超时未揽收单量统计
应用场景: 双十一大屏统计 - - 订单超时汇总 项目指标概况: 应用背景:晚点超时指标,例如:出库超6小时未揽收订单量 难点:flink消息触发式计算,没有消息到达则无法计算,而这类指标…...
【造包工具】【Xcap】精讲Xcap构造分片包(IPv4、ipv6、4G\5G等pcap均可),图解超赞超详细!!!
目录 前言 1. XCap工具概念介绍 2. Xcap环境说明 2.1 新建报文组 2.2 导入数据包 2.3 查看报文组 2.4 复制删除报文组 3. 构造分片包 3.1 造普通/外层分片步骤: 3.2 造内层分片步骤 3.2.1 建立一个新报文 3.2.2 将组装的新报文分片 3.2.3 替换原始包内层…...
RabbitMQ学习(第二天)
文章目录 1、生产者可靠性①、生产者重连②、生产者确认 2、MQ可靠性①、数据持久化②、LazyQueue(惰性队列) 3、消费者可靠性①、消费者确认②、失败重试机制③、保证业务幂等性 总结 之前的学习中,熟悉了java中搭建和操作RabbitMQ发送接收消息,熟悉使用…...
旧版 Flutter 写的项目, 想要在新的环境上运行?
DeepSeek 给出的最佳实践 以下是针对拷贝 Flutter 项目到新环境运行的 完整检查清单和最佳实践,覆盖了环境配置、版本兼容性、依赖管理等多个关键点: 📋 完整检查清单 检查项操作方式/命令重要性1. Flutter SDK 版本flutter --version 对比…...
Flutter接入ProtoBuff和原生Android通信【性能最优】
Protocol Buffers(简称Protobuf)是由 Google 开发的一种结构化数据序列化框架,旨在实现高效的数据交换与存储。其核心特性及优势如下: 一、核心特性 跨语言与跨平台 支持多种编程语言(如 C、Java、Python、Dart …...
【MySQL】(10)用户和权限管理
一、应用场景 通常一个应用对应一个数据库,我们希望某个数据库只能被相关人员操纵,就需要创建用户并指定权限。只有登录该用户,才能在权限范围内操纵数据库。root 是权限最高的用户,它拥有所有的权限。 二、查询用户 在 mysql 数…...
学成在线之缓存
一:缓存 把白名单可以看到的信息和学生用户下的我的学习,我的选课等这些信息,存到缓存中,因为这些查询量比较大。 当查询时,先去检查缓存中是否有这个数据,如果有,就直接返回 如果没有&#…...
视频编解码学习8之视频历史
视频技术的发展历史可以追溯到19世纪,至今已跨越近200年。以下是视频技术发展的主要阶段和里程碑: 1. 早期探索阶段(19世纪-1920年代) 1832年:约瑟夫普拉托(Joseph Plateau)发明"费纳奇镜&…...
从装饰器出发,优雅处理 UI 自动化中的异常
二、装饰器核心原理:函数式编程的“语法糖” 在 UI 自动化测试的实际场景中,页面加载超时、元素定位失败、网络波动等异常问题频繁出现。传统的try-except嵌套方式虽然能捕获异常,但会导致业务代码与处理逻辑高度耦合,造成代码冗…...
华为首款鸿蒙电脑正式亮相
在2025年5月8日的鸿蒙电脑技术与生态沟通会上,华为终端BG平板与PC产品线总裁朱懂东发表演讲。鸿蒙办公将支持无缝协同(统一账户 / 多端同步)、智慧体验(鸿蒙 AI / 智慧交互)、融合生态(桌面生态 / 移动生态…...
森林生态学研究深度解析:R语言入门、生物多样性分析、机器学习建模与群落稳定性评估
在生态学研究中,森林生态系统的结构、功能与稳定性是核心研究内容之一。这些方面不仅关系到森林动态变化和物种多样性,还直接影响森林提供的生态服务功能及其应对环境变化的能力。森林生态系统的结构主要包括物种组成、树种多样性、树木的空间分布与密度…...
需求分析阶段测试工程师主要做哪些事情
在软件测试需求分析阶段,主要围绕确定测试范围、明确测试目标、细化测试内容等方面开展工作,为后续测试计划的制定、测试用例的设计以及测试执行提供清晰、准确的依据。以下是该阶段具体要做的事情: 1. 需求收集与整理 收集需求文档&#x…...
IBM BAW(原BPM升级版)使用教程第五讲
结前篇! 一、服务:外部服务 在 IBM Business Automation Workflow (BAW) 中,外部服务(External Services)是指在流程中调用和集成外部系统或服务的组件。外部服务允许IBM BAW与其他业务系统、应用程序或第三方服务进行…...