自由学习记录(13)
服务端常见的“资源”
在服务端,常见的“资源”指的是服务端提供给客户端访问、使用、处理或操作的各种数据和功能。根据不同类型的服务和应用场景,服务端的资源种类可以非常广泛。以下是一些常见的服务端资源类型:
1. 文件和静态资源
- 网页文件:HTML、CSS、JavaScript 文件,客户端通过 HTTP 请求从 Web 服务器获取这些资源,呈现网页内容。
- 图像、视频、音频文件:服务端可以存储和提供静态媒体文件,如图片(JPEG、PNG)、视频(MP4)、音频(MP3)等。
- 文档和下载资源:如 PDF、Word 文档、软件安装包等,服务端将这些文件作为资源供客户端下载。
2. 数据库和数据存储
- 关系型数据库:服务端资源可以是数据库中的表格和数据,使用 SQL 语言查询和操作数据。常见的数据库如 MySQL、PostgreSQL、SQL Server 等。
- NoSQL 数据库:用于存储非结构化或半结构化数据,如键值对、文档型数据等。常见的 NoSQL 数据库有 MongoDB、Redis、Cassandra 等。
- 缓存数据:服务端为了提高性能,可能会将经常访问的数据存入缓存(如 Redis、Memcached),作为快速提供给客户端的资源。
3. API(应用程序接口)
- RESTful API:服务端提供的资源可以是通过 REST API 暴露的数据和功能,客户端通过 HTTP 请求操作资源(如获取、创建、修改、删除)。
- GraphQL API:GraphQL 是另一种 API 接口标准,客户端可以根据自己的需要动态获取特定的数据字段和结构。
- RPC(远程过程调用)服务:通过 RPC 服务,客户端可以调用远程服务端的函数或方法,如 gRPC。
4. 计算资源
- 处理能力:服务端可以提供计算资源,如处理客户端请求时所需的 CPU、内存等计算能力。比如,复杂的数据分析、AI 模型训练、视频编解码等计算密集型任务。
- 任务调度与工作流:服务端可以管理和执行异步任务或批处理任务,客户端请求服务端执行某些任务,服务端在后台处理并返回结果。
5. 用户管理与认证资源
- 用户数据和权限:服务端可以管理用户信息(如用户账户、密码、权限),客户端可以请求进行登录认证或访问用户数据。
- 会话管理:服务端通过会话(Session)或令牌(Token)管理客户端和用户的状态,确保用户访问资源时的合法性。
6. 实时数据流
- 消息队列:服务端可以提供消息队列(如 Kafka、RabbitMQ)作为一种实时数据流服务,客户端通过发布和订阅消息进行数据交互。
- WebSocket 服务:服务端可以通过 WebSocket 提供实时通信服务,允许客户端与服务端之间进行双向实时数据传输,常用于聊天、实时游戏等场景。
7. 媒体和内容分发资源
- 流媒体服务:服务端可以提供实时或点播的音视频流,客户端请求音视频资源进行播放。服务端会处理媒体的编码、传输等。
- 内容分发网络(CDN):CDN 是一种专门用于加速静态资源分发的技术,服务端可以通过 CDN 分发内容,如视频、图像、网页等,减少客户端请求的延迟。
8. 虚拟化和容器资源
- 虚拟机和容器:在云计算中,服务端提供的资源可以是虚拟机(如 Amazon EC2、Google Compute Engine)或容器(如 Docker 容器),供客户端部署和运行自己的应用程序。
- 函数即服务(FaaS):服务端提供的资源可以是无服务器的计算资源,客户端通过调用特定的函数来执行代码,如 AWS Lambda。
9. 日志与监控数据
- 日志文件:服务端会记录系统的操作、错误、用户活动等日志,客户端可以访问或查看这些日志数据进行调试或分析。
- 系统监控数据:服务端可能会提供系统健康状况、性能指标等监控数据(如 CPU 使用率、内存使用情况、网络流量等),用于跟踪和管理系统的运行状态。
10. 身份认证与授权服务
- OAuth 认证服务:服务端提供 OAuth 或 SSO(单点登录)服务,客户端通过授权认证获取访问受限资源的权限。
- 安全令牌(Token)服务:服务端可以提供 Token 认证,确保客户端的身份合法性,常见于 API 请求中携带的 JWT(JSON Web Token)。
11. 位置和地理信息服务
- 地图和位置数据:服务端提供地图资源,允许客户端进行位置查询、路线规划等操作。像 Google Maps API、Baidu Maps 等都是常见的服务端地图资源。
- 地理数据分析:服务端可以处理和提供与地理相关的数据资源,如用户的地理位置、地理围栏等信息。
12. 电子邮件和消息推送服务
- 邮件服务:服务端可以提供电子邮件发送功能,客户端可以请求发送邮件(如注册验证、通知邮件)。
- 推送通知服务:服务端管理和发送推送通知给客户端设备,常见于移动应用中的实时通知和提醒功能。
总结:
服务端的“资源”涵盖了文件、数据、API、计算能力、缓存、用户管理、实时数据流、媒体服务等多个方面。这些资源都是由服务端管理、处理并提供给客户端访问或消费的。服务端的资源管理能力直接影响系统的性能、扩展性和用户体验。
服务端为什么叫服务,客户端...
“服务端”和“客户端”的命名源自它们在网络通信和分布式系统中的角色与功能。要理解这个命名的来源,我们可以从它们各自的功能、作用以及相互之间的关系来进行解释。
服务端(Server)
服务端也叫服务器,它之所以称为“服务”,是因为它的主要作用是提供某种服务或资源,响应客户端的请求。
-
提供服务:服务端运行在一台或多台机器上,能够为多个客户端提供资源或处理能力。它就像餐厅的服务员,当顾客(客户端)提出需求时,它会响应并提供服务。
-
被动响应:服务端通常是等待客户端发来请求,然后根据请求的内容,执行相应的操作。比如,Web服务器会根据客户端发送的HTTP请求返回网页内容;数据库服务器根据客户端的查询请求返回数据。
-
资源集中:服务端通常会集中处理和管理资源(例如文件、数据库、计算能力等),以确保多个客户端能够共享这些资源。这也是服务端的重要作用之一——集成资源并对外提供统一的接口。
-
服务端主要功能:
- 处理并响应客户端的请求。
- 管理和维护所提供的资源(如数据库、文件、计算能力等)。
- 保证高可用性和并发能力,处理多个客户端的并发请求。
客户端(Client)
客户端是指向服务端发出请求的实体,称为“客户”是因为它类似于顾客,向服务端“消费”服务或资源。
-
发起请求:客户端通常是主动的一方,它向服务端发出请求,期望获得某种资源或服务。例如,浏览器作为客户端,会向Web服务器发起请求,获取网页内容。
-
资源消费者:客户端不需要持有或管理资源,它只负责向服务端请求并获取资源。就像顾客在餐厅中不需要准备食材和烹饪,而是向餐厅服务员提出需求,然后享受食物。
-
运行环境灵活:客户端通常运行在用户的设备上(如PC、手机、平板),每个客户端都有各自的操作环境和界面,用户可以通过客户端来与服务端交互。
-
客户端主要功能:
- 发送请求并等待服务端响应。
- 显示服务端返回的数据或结果,例如将网页内容呈现给用户。
- 用户界面的提供者,允许用户与系统进行交互。
客户端和服务端的关系
服务端和客户端的关系是一种典型的请求-响应模式,其中:
- 客户端发起请求,服务端则是被动响应。
- 客户端通常是消费者,它依赖于服务端提供的资源。
- 服务端是提供者,它管理资源并确保可以同时为多个客户端提供服务。
类比
- 餐厅和顾客:餐厅是服务端,顾客是客户端。餐厅提供食物服务,顾客点单,餐厅准备食物并提供给顾客。
- 银行和客户:银行(服务端)持有资金、处理交易,客户(客户端)发出提款、查询等请求,银行处理这些请求并返回结果。
举例
-
Web 应用:
- 客户端:用户的浏览器,发出HTTP请求获取网页。
- 服务端:Web服务器,处理请求并返回HTML、CSS、JavaScript等网页内容。
-
在线游戏:
- 客户端:玩家的设备,发出操作和数据请求,获取游戏世界状态。
- 服务端:游戏服务器,管理游戏世界、计算游戏逻辑,处理玩家操作并同步世界状态。
总结
- 服务端之所以称为“服务”,是因为它负责管理资源和提供服务,响应客户端的请求。
- 客户端被称为“客户”,是因为它发出请求,像顾客一样从服务端获取所需的服务或资源。
这种命名反映了它们的角色关系:服务端提供,客户端请求并消费。
字典序是什么
在 C++ 中,使用 cin
来输入字符时,默认情况下不会自动处理换行符。具体来说,cin
以空白字符(包括空格、换行符、制表符等)作为分隔符进行输入。这意味着:
- 当你使用
cin >> char[i][j]
来逐个读取字符时,cin
会跳过换行符和空格等空白字符,直接读取下一个非空白字符。 - 如果你想要手动读取换行符或者其他空白字符,你可以使用
cin.get()
或cin.getline()
。
cin >> char[i][j]
行为
使用 cin >> char[i][j]
读取字符时,会忽略换行符和空格。因此,如果你逐个字符读取,这段代码并不会捕捉到输入中的换行符。
字典序最小的意思是按照字典中的排列顺序,找到在所有可能的排列中最靠前的一个。这个概念来自字典中单词的排列方式,也可以用于比较字符串或序列。
字典序的定义
- 字典序的规则类似于我们在字典中查找单词的顺序:
- 先比较第一个字符,如果不同,字母表靠前的字符对应的字符串排在前面。
- 如果第一个字符相同,则继续比较第二个字符,依此类推。
- 当所有字符比较完或者一个字符串结束时,较短的字符串被认为字典序较小。
Java TCP
信息量较多,客户端,服务端,线程池,Socket,线程工厂,线程任务添加至工厂
11
为什么用equal
在 Java 中,字符串的比较需要使用 equals()
方法而不是 ==
运算符,这是由于 Java 中字符串的内部处理方式和对象引用的机制导致的。以下是详细原因:
1. 对象引用 vs. 值比较
==
比较的是 对象的引用,而不是对象的内容。它检查两个对象在内存中是否指向同一个位置。equals()
比较的是 对象的内容,即两个字符串的实际字符序列是否相同。
示例:
String str1 = new String("Hello");
String str2 = new String("Hello");
if (str1 == str2)
{ System.out.println("== comparison: Same reference"); }
else
{ System.out.println("== comparison: Different reference"); }
if (str1.equals(str2))
{ System.out.println("equals comparison: Same content"); }
输出结果是:
== comparison: Different reference equals comparison: Same content
在这个例子中,str1
和 str2
是两个不同的对象,即使它们包含相同的字符串 "Hello"
。使用 ==
比较的是它们在内存中的引用,因此它们被认为是 不同的。然而,使用 equals()
比较的是字符串的内容,所以它们被认为是 相同的。
2. 字符串常量池
Java 中有一个称为 字符串常量池 的优化机制。当你创建字符串时,如果直接使用字面量赋值(如 String str = "Hello";
),Java 会将这些字符串存储在常量池中并进行优化。
示例:
String str1 = "Hello";
String str2 = "Hello";
if (str1 == str2)
{ System.out.println("== comparison: Same reference"); }
else { System.out.println("== comparison: Different reference"); }
在这种情况下,str1
和 str2
都引用常量池中的同一个 "Hello"
字符串,==
比较会返回 true,因为它们指向相同的内存地址。但是,如果字符串是通过 new
关键字创建的,==
比较将返回 false。
流的复习
Java的IO(输入/输出)流库提供了多种类来处理数据的输入和输出操作。这些类被组织在java.io
包中,主要分为以下几个类别:
-
基础流类:
InputStream
:所有输入字节流的超类,提供基本的读操作。OutputStream
:所有输出字节流的超类,提供基本的写操作。Reader
:所有输入字符流的超类,提供基本的读操作。Writer
:所有输出字符流的超类,提供基本的写操作。
-
字节流类(继承自
InputStream
和OutputStream
):FileInputStream
:从文件中读取数据。FileOutputStream
:向文件中写入数据。ByteArrayInputStream
:从字节数组中读取数据。ByteArrayOutputStream
:向字节数组中写入数据。PipedInputStream
:从与另一个线程相连的PipedOutputStream
读取数据。PipedOutputStream
:向与另一个线程相连的PipedInputStream
写入数据。
-
字符流类(继承自
Reader
和Writer
):FileReader
:从文件中读取字符数据。FileWriter
:向文件中写入字符数据。CharArrayReader
:从字符数组中读取数据。CharArrayWriter
:向字符数组中写入数据。PipedReader
:从与另一个线程相连的PipedWriter
读取数据。PipedWriter
:向与另一个线程相连的PipedReader
写入数据。StringReader
:从字符串中读取数据。StringWriter
:向字符串中写入数据。
-
缓冲流类(提高IO效率):
BufferedInputStream
:带缓冲区的输入字节流。BufferedOutputStream
:带缓冲区的输出字节流。BufferedReader
:带缓冲区的输入字符流。BufferedWriter
:带缓冲区的输出字符流。
-
转换流类(用于字节和字符之间的转换):
InputStreamReader
:将字节流转换为字符流。OutputStreamWriter
:将字符流转换为字节流。
-
对象流类(用于对象的序列化和反序列化):
ObjectInputStream
:用于反序列化对象。ObjectOutputStream
:用于序列化对象。
-
数据流类(用于读写Java基本数据类型的数据):
DataInputStream
:用于读取Java基本数据类型的数据。DataOutputStream
:用于写入Java基本数据类型的数据。
状态机






关键帧的缺失
k帧,给动画增加关键帧
idle的时候只是甩手,给手增加了变化
而脚的运动没有操控,所以控制 的不是整个整体,当
跑步停下动作之后,腿很自然 的会停住,
而idle时又是只操纵手,所以脚就会一直停在一个比较尴尬 的位置
Tile相关的代码控制
Tint Brush
要把颜色锁关了变成none
group brush
瓦片轴心点遮挡
Sprite
Java网络编程
UDP的DatagramSocket和DatagramPacket
Java抢红包(多线程)
创建了一个list<红包>,然后new线程的时候传入这个红包对象进行操作,因为是引用类型,所有线程共享这个对象,所有就可以synchronized(传入list<红包>对象,锁住)
相关文章:

自由学习记录(13)
服务端常见的“资源” 在服务端,常见的“资源”指的是服务端提供给客户端访问、使用、处理或操作的各种数据和功能。根据不同类型的服务和应用场景,服务端的资源种类可以非常广泛。以下是一些常见的服务端资源类型: 1. 文件和静态资源 网页…...

低代码可视化-uniapp海报可视化设计-代码生成
在uni-app中,海报生成器通常是通过集成特定的插件或组件来实现的,这些插件或组件提供了生成海报所需的功能和灵活性。我们采用了lime-painter海报组件。lime-painter是一款canvas海报组件,可以更轻松地生成海报。它支持通过JSON及Template的方…...

一次使用LD_DEBUG定位问题的经历
在实际工作中,当遇到段错误,我们会很容易的想到这是非法访问内存导致的,比如访问了已经释放的内存,访问数据越界,尝试写没有写权限的内存等。使用gdb进行调试,查看出异常的调用栈,往往可以定位到…...
数据库安全:如何进行数据库安全审计?
数据库安全:如何进行数据库安全审计? 数据库安全审计是保障数据库安全的重要手段之一,可以帮助企业及时发现潜在的安全风险并采取相应的措施。以下是进行数据库安全审计的步骤和方法: 一、确定审计目标 在进行数据库安全审计之前,首先需要确定审计的目标。这可能包括以…...
【Python】基础语法错误和异常
在Python中,语法错误和异常是两个常见的问题。下面对它们进行简要介绍。 1.语法错误 (Syntax Error) 语法错误是指代码的语法不符合Python的语言规则。当Python解释器读取程序代码时,如果发现语法不正确,就会抛出语法错误。这种错误通常在代…...
获取每个页面的元素,并写入json
获取每个页面的元素,并写入json 想法:如何去记住每个页面的元素,如何实现不同页面的导航,如何从主页面遍历每一个页面的每一个元素 1.创建数据结构存储 2.树状图正好是我们想要的结构体:创建树状图结构体 3.记录每个页…...
【ShuQiHere】深入解析数字电路中的锁存器与触发器
深入解析数字电路中的锁存器与触发器 🤖🔌 在数字电路设计中,**锁存器(Latch)和触发器(Flip-Flop)**是实现时序逻辑的基本元件。它们能够存储状态,是构建复杂数字系统的关键。本文将…...

【学习AI-相关路程-mnist手写数字分类-python-硬件:jetson orin NX-自我学习AI-基础知识铺垫-遇到问题(1) 】
【学习AI-相关路程-mnist手写数字分类-python-硬件:jetson orin NX-自我学习AI-基础知识铺垫-遇到问题(1) 】 1、前言2、先行了解(1)学习基础知识-了解jetson orin nx 设备(2)学习python&AI…...

数据轻松上云——Mbox边缘计算网关
随着工业4.0时代的到来,工厂数字化转型已成为提升生产效率、优化资源配置、增强企业竞争力的关键。我们凭借其先进的边缘计算网关与云平台技术,为工厂提供了高效、稳定的数据采集与上云解决方案。本文将为您介绍Mbox边缘计算网关如何配合明达云平台&…...
ifftshift函数
ifftshift 原理 将频域数据移回时域的函数。它通常与 fftshift 配合使用,后者用于将时域数据移动到频域中心。 而ifftshift所作的事正好相反,将频谱恢复到能量集中在两端(或四个角)上,接着就可以做逆傅里叶变换了 具…...

vue3 + ts + element-plus 二次封装 el-dialog
实现效果: 组件代码:注意 style 不能为 scoped <template><el-dialog class"my-dialog" v-model"isVisible" :show-close"false" :close-on-click-modal"false" :modal"false"modal-class&…...

MySQL9.0安装教程zip手动安装(Windows)
本章教程,主要介绍如何在Windows上安装MySQL9.0,通过zip方式进行手动安装。 一、下载MySQL压缩包 下载地址:https://downloads.mysql.com/archives/community/ 二、解压MySQL压缩包 将下载好的压缩包,进行解压缩,并且将…...

如何在浏览器中查看格式化的 HTML?
问题描述 我需要这个 HTML 页面在我的浏览器中显示格式化后的信息。我只是将文件存储在本地驱动器上。我需要将文件上传到服务器才能将其作为 HTML 查看,还是可以在本地查看?如在屏幕截图中看到的,它当前显示相同的 HTML 代码。我尝试搜索&am…...

浅谈计算机存储体系和CPU缓存命中
一、计算机存储 一般关于计算机存储体系分为三层 ①三级缓存/寄存器 大多数寄存器只有四字节到八字节,只用于读取很小的数据;三级缓存是为了方便CPU读取内存中数据而存在的 ②内存————数据结构就是在内存中管理数据 ③硬盘————数据库/文件就…...
ES操作:linux命令
查询数据库所有索引 没有密码 curl -X GET "http://localhost:9200/_cat/indices?v" 有密码 curl -u elastic:my_password -X GET "http://localhost:9200/_cat/indices?v" 删除索引 curl-X DELETE "http://localhost:9200/index_XXX" 不…...

Java使用原生HttpURLConnection实现发送HTTP请求
Java 实现发送 HTTP 请求,系列文章: 《Java使用原生HttpURLConnection实现发送HTTP请求》 《Java使用HttpClient5实现发送HTTP请求》 《SpringBoot使用RestTemplate实现发送HTTP请求》 1、HttpURLConnection 类的介绍 HttpURLConnection 是 Java 提供的…...

TinyC编译器5—词法分析
1.词法分析的概念 词法分析也称为 分词 ,此阶段编译器从左向右扫描源文件,将其字符流分割成一个个的 词 ( token 、 记号 ,后文中将称为 token )。所谓 token ,就是源文件中不可再进一步分割的一串字符&am…...

电子电气架构---智能计算架构和SOA应用
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不…...

Python Numpy 实现神经网络自动训练:反向传播与激活函数的应用详解
Python Numpy 实现神经网络自动训练:反向传播与激活函数的应用详解 这篇文章介绍了如何使用 Python 的 Numpy 库来实现神经网络的自动训练,重点展示了反向传播算法和激活函数的应用。反向传播是神经网络训练的核心,能够通过计算梯度来优化模…...
Apache Calcite - 基于规则的查询优化
基于规则的查询优化 基于规则的查询优化(Rule-based Query Optimization)是一种通过应用一系列预定义的规则来优化查询计划的技术。这些规则描述了如何转换关系表达式,以提高查询执行的效率。基于规则的优化器并不依赖于统计信息,…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...