自由学习记录(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)是一种通过应用一系列预定义的规则来优化查询计划的技术。这些规则描述了如何转换关系表达式,以提高查询执行的效率。基于规则的优化器并不依赖于统计信息,…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
webpack面试题
面试题:webpack介绍和简单使用 一、webpack(模块化打包工具)1. webpack是把项目当作一个整体,通过给定的一个主文件,webpack将从这个主文件开始找到你项目当中的所有依赖文件,使用loaders来处理它们&#x…...































