Oracle 数据库安装和配置指南(新)
目录
1. 什么是Oracle数据库?
2. 安装前的准备工作
2.1 硬件要求
2.2 软件要求
2.3 下载Oracle安装包
3. Oracle数据库的安装步骤
3.1 Windows系统安装步骤
3.2 Linux系统安装步骤
4. 配置Oracle数据库
4.1 设置环境变量(Linux)
4.2 配置监听器(Listener)
4.3 创建数据库
4.4 数据库启动与关闭
4.5 配置自动启动
5. Oracle数据库的基本操作
5.1 创建用户和表空间
5.2 导入和导出数据
5.3 SQL操作示例
6. 总结
您说:
Elasticsearch实战应用指南
1. 什么是Elasticsearch?
2. Elasticsearch的核心特性
3. Elasticsearch的架构
4. Elasticsearch的安装与配置
4.1 安装前的准备
4.2 安装步骤
4.3 配置文件说明
5. 数据索引与管理
5.1 创建索引
5.2 添加文档
5.3 更新与删除文档
5.4 管理索引
6. 搜索与查询
6.1 基本查询
6.2 组合查询
6.3 分页与排序
7. 聚合与分析
7.1 基本聚合
7.2 嵌套聚合
8. 实际案例
8.1 日志分析
8.2 电商网站搜索
8.3 数据分析与可视化
9. 性能优化
9.1 索引优化
9.2 查询优化
9.3 硬件优化
9.4 集群管理
10. 安全与监控
10.1 安全配置
10.2 监控工具
10.3 常见安全配置示例
11. 总结
1. 什么是Oracle数据库?
Oracle数据库是由Oracle公司开发的关系型数据库管理系统(RDBMS),被广泛应用于企业级数据存储和管理中。其支持多用户、多任务和大规模并发访问,具有高安全性、高性能和良好的扩展性。在金融、政府、医疗等领域,Oracle数据库因其稳定性和强大的功能被广泛使用。
2. 安装前的准备工作
在安装Oracle数据库之前,需要确保系统满足最低的硬件和软件要求。以下是一些关键的准备步骤:
2.1 硬件要求
组件 | 最低要求 |
---|---|
处理器 | 最低2 GHz CPU |
内存 | 最低2 GB内存,推荐4 GB及以上 |
硬盘空间 | 至少10 GB可用磁盘空间,建议20 GB或以上 |
显示分辨率 | 1024 x 768或更高分辨率 |
2.2 软件要求
软件组件 | 说明 |
---|---|
操作系统 | Windows 10 64位、Linux、Unix等 |
JDK版本 | JDK 8及以上 |
依赖库 | 在Linux系统中,需安装相关的依赖库,如libaio 等 |
2.3 下载Oracle安装包
- 访问Oracle官方网站。
- 选择合适的版本(如Oracle Database 19c或21c),根据操作系统下载相应的安装包。
- 在下载前需要注册Oracle账户,并接受许可协议。
3. Oracle数据库的安装步骤
3.1 Windows系统安装步骤
- 解压安装包:下载完成后,将安装包解压到指定的目录。
- 运行安装程序:找到
setup.exe
文件并以管理员身份运行。 - 选择安装类型:
- 创建并配置一个单实例数据库。
- 仅安装数据库软件,稍后配置数据库。
- 选择数据库版本:选择“企业版”或“标准版”,企业版功能最全。
- 配置Oracle数据库:
- 设置全局数据库名(Global Database Name),通常为
orcl
。 - 配置数据库标识符(SID)。
- 设置管理员密码(如
sys
、system
用户的密码)。
- 设置全局数据库名(Global Database Name),通常为
- 安装路径选择:选择Oracle主目录和数据库文件存储路径。
- 完成安装:点击“安装”,安装程序将自动配置并启动数据库。
3.2 Linux系统安装步骤
-
创建Oracle用户和组:
bash
复制代码
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle
设置Oracle用户密码:
bash
复制代码
passwd oracle
-
修改系统内核参数:编辑
/etc/sysctl.conf
文件,添加以下参数:bash
复制代码
fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096
保存后执行
sysctl -p
使配置生效。 -
安装依赖库:使用包管理工具安装必要的依赖库:
bash
复制代码
yum install -y binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel libaio libaio-devel
-
解压并运行安装程序: 切换到oracle用户,解压安装包并进入解压后的目录,运行:
bash
复制代码
./runInstaller
-
图形界面安装步骤:和Windows类似,选择创建数据库,配置SID、密码等。
4. 配置Oracle数据库
安装完成后,还需进行一些基本的配置操作,以确保数据库能够正常运行并与客户端连接。
4.1 设置环境变量(Linux)
在/home/oracle/.bash_profile
文件中添加以下内容:
bash
复制代码
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH
然后执行以下命令使环境变量生效:
bash
复制代码
source ~/.bash_profile
4.2 配置监听器(Listener)
Oracle监听器负责管理客户端与数据库实例之间的通信。在安装完成后,可以通过以下步骤进行配置:
- 运行命令
netca
,启动Oracle网络配置助手。 - 选择“监听器配置”,创建新的监听器。
- 选择协议(默认使用TCP/IP协议),并指定监听端口(默认1521端口)。
4.3 创建数据库
如果在安装时选择了仅安装数据库软件,那么需要手动创建数据库:
bash
复制代码
dbca
- 选择“创建数据库”。
- 配置全局数据库名和SID。
- 配置字符集(推荐选择UTF-8字符集)。
- 选择数据库存储位置和存储类型。
4.4 数据库启动与关闭
在命令行中可以通过以下命令启动和关闭Oracle数据库:
-
启动数据库:
bash
复制代码
sqlplus / as sysdba startup
-
关闭数据库:
bash
复制代码
shutdown immediate;
4.5 配置自动启动
为了使Oracle数据库在系统启动时自动启动和关闭,可以在Linux中编辑/etc/oratab
文件,修改如下:
bash
复制代码
orcl:/u01/app/oracle/product/19.0.0/dbhome_1:Y
然后在/etc/rc.local
中添加启动脚本:
bash
复制代码
su - oracle -c "lsnrctl start" su - oracle -c "dbstart"
5. Oracle数据库的基本操作
Oracle安装并配置完成后,可以进行一些基本的数据库操作。
5.1 创建用户和表空间
-
创建表空间:
sql
复制代码
CREATE TABLESPACE mytablespace DATAFILE '/u01/app/oracle/oradata/orcl/mytablespace.dbf' SIZE 100M;
-
创建用户并分配表空间:
sql
复制代码
CREATE USER myuser IDENTIFIED BY mypassword DEFAULT TABLESPACE mytablespace; GRANT CONNECT, RESOURCE TO myuser;
5.2 导入和导出数据
-
导出数据:
bash
复制代码
expdp myuser/mypassword@orcl schemas=myuser directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=expdp.log;
-
导入数据:
bash
复制代码
impdp myuser/mypassword@orcl schemas=myuser directory=DATA_PUMP_DIR dumpfile=mydump.dmp logfile=impdp.log;
5.3 SQL操作示例
-
创建表:
sql
复制代码
CREATE TABLE employees ( employee_id NUMBER PRIMARY KEY, first_name VARCHAR2(50), last_name VARCHAR2(50), hire_date DATE );
-
插入数据:
sql
复制代码
INSERT INTO employees (employee_id, first_name, last_name, hire_date) VALUES (1, 'John', 'Doe', SYSDATE);
-
查询数据:
sql
复制代码
SELECT * FROM employees;
6. 总结
本文详细介绍了Oracle数据库的安装和配置过程。通过遵循这些步骤,您可以顺利地在Windows或Linux操作系统上安装Oracle,并进行基本的数据库配置和操作。Oracle数据库强大的功能和广泛的应用领域使其成为企业级数据库管理系统的首选之一。在安装配置完成后,您可以根据需要进行更深入的优化和高级设置。
4o
您说:
再写一篇 elasticsearch实战应用的文章,我觉得你能做的更好
ChatGPT
思考 几秒
Elasticsearch实战应用指南
1. 什么是Elasticsearch?
Elasticsearch是一款开源的、基于Lucene构建的分布式搜索和分析引擎。它提供了近实时的搜索能力,能够处理大量结构化和非结构化数据。Elasticsearch广泛应用于日志分析、全文搜索、数据可视化和大数据分析等领域,是构建高性能搜索和分析平台的理想选择。
2. Elasticsearch的核心特性
- 分布式架构:Elasticsearch天然支持分布式部署,可以轻松扩展以处理大规模数据。
- 全文搜索:基于Lucene,提供强大的全文搜索能力,支持复杂的查询和分析。
- 实时性:近实时的数据索引和搜索,适用于需要快速响应的应用场景。
- 多租户支持:通过索引和文档的概念,支持多租户数据管理。
- RESTful API:基于HTTP的RESTful接口,易于集成和使用。
- 丰富的生态系统:与Kibana、Logstash等工具无缝集成,构建完整的数据处理和可视化解决方案。
3. Elasticsearch的架构
Elasticsearch采用分布式架构,由以下几个核心组件组成:
组件 | 描述 |
---|---|
节点(Node) | Elasticsearch集群中的单个服务器实例。每个节点可以存储数据并参与集群的索引和搜索操作。 |
集群(Cluster) | 由多个节点组成的集合,共同管理和存储数据。集群有一个唯一的名称,节点通过这个名称加入集群。 |
索引(Index) | 存储具有相似特征的文档的集合,相当于关系数据库中的数据库。 |
文档(Document) | 索引中的基本信息单位,使用JSON格式存储。类似于关系数据库中的记录。 |
分片(Shard) | 索引的水平分割,每个索引可以分为多个主分片和副本分片,提高性能和容错性。 |
副本(Replica) | 主分片的副本,用于高可用性和负载均衡。 |
4. Elasticsearch的安装与配置
4.1 安装前的准备
- 系统要求:
- 操作系统:Linux、Windows、macOS等。
- Java环境:Elasticsearch内置了OpenJDK,无需额外安装。
- 硬件要求:至少2 GB内存,推荐4 GB及以上。
4.2 安装步骤
以Linux为例的安装步骤:
-
下载Elasticsearch:
bash
复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.0-linux-x86_64.tar.gz
-
解压安装包:
bash
复制代码
tar -xzf elasticsearch-8.5.0-linux-x86_64.tar.gz cd elasticsearch-8.5.0/
-
启动Elasticsearch:
bash
复制代码
./bin/elasticsearch
-
验证安装: 打开浏览器或使用curl命令访问
http://localhost:9200
,应返回Elasticsearch的基本信息。
4.3 配置文件说明
Elasticsearch的主要配置文件是elasticsearch.yml
,位于config
目录下。以下是常用配置项:
配置项 | 描述 |
---|---|
cluster.name | 集群名称,用于区分不同的Elasticsearch集群。 |
node.name | 节点名称,每个节点应有唯一的名称。 |
path.data | 数据存储路径。 |
path.logs | 日志存储路径。 |
network.host | 网络绑定地址,默认绑定localhost 。设置为0.0.0.0 可允许外部访问。 |
http.port | HTTP接口端口,默认9200 。 |
discovery.seed_hosts | 用于节点发现的初始主机列表。 |
cluster.initial_master_nodes | 集群的初始主节点列表。 |
5. 数据索引与管理
5.1 创建索引
索引是Elasticsearch中存储数据的基本单位。创建索引时,可以指定映射(Mapping)来定义字段的类型和属性。
bash
复制代码
PUT /my_index { "settings": { "number_of_shards": 3, "number_of_replicas": 2 }, "mappings": { "properties": { "title": { "type": "text" }, "date": { "type": "date" }, "price": { "type": "float" } } } }
5.2 添加文档
向索引中添加文档,可以通过索引API实现。
bash
复制代码
POST /my_index/_doc/1 { "title": "Elasticsearch实战", "date": "2024-04-27", "price": 39.99 }
5.3 更新与删除文档
-
更新文档:
bash
复制代码
POST /my_index/_update/1 { "doc": { "price": 29.99 } }
-
删除文档:
bash
复制代码
DELETE /my_index/_doc/1
5.4 管理索引
操作 | 示例命令 | 描述 |
---|---|---|
查看索引 | GET /_cat/indices?v | 列出所有索引及其状态 |
删除索引 | DELETE /my_index | 删除指定索引 |
关闭索引 | POST /my_index/_close | 关闭指定索引,停止搜索和索引操作 |
打开索引 | POST /my_index/_open | 打开已关闭的索引 |
6. 搜索与查询
Elasticsearch提供了强大的查询DSL(Domain Specific Language),支持多种查询方式。
6.1 基本查询
-
Match Query:用于全文搜索,匹配指定字段中的文本。
bash
复制代码
GET /my_index/_search { "query": { "match": { "title": "Elasticsearch" } } }
-
Term Query:用于精确匹配,适用于关键字或数值字段。
bash
复制代码
GET /my_index/_search { "query": { "term": { "price": 29.99 } } }
6.2 组合查询
-
Bool Query:组合多个查询条件,支持
must
、should
、must_not
等逻辑。bash
复制代码
GET /my_index/_search { "query": { "bool": { "must": [ { "match": { "title": "Elasticsearch" } }, { "range": { "price": { "gte": 20 } } } ], "must_not": [ { "term": { "price": 10 } } ] } } }
6.3 分页与排序
-
分页:通过
from
和size
参数实现分页。bash
复制代码
GET /my_index/_search { "from": 10, "size": 10, "query": { "match_all": {} } }
-
排序:通过
sort
参数指定排序字段和顺序。bash
复制代码
GET /my_index/_search { "sort": [ { "price": { "order": "desc" } } ], "query": { "match_all": {} } }
7. 聚合与分析
Elasticsearch的聚合功能允许对数据进行分组、统计和分析。
7.1 基本聚合
-
Terms Aggregation:对指定字段进行分组统计。
bash
复制代码
GET /my_index/_search { "size": 0, "aggs": { "group_by_title": { "terms": { "field": "title.keyword" } } } }
-
Date Histogram Aggregation:按时间间隔分组统计。
bash
复制代码
GET /my_index/_search { "size": 0, "aggs": { "sales_over_time": { "date_histogram": { "field": "date", "calendar_interval": "month" } } } }
7.2 嵌套聚合
-
Nested Aggregation:用于嵌套文档结构的聚合。
bash
复制代码
GET /my_index/_search { "size": 0, "aggs": { "nested_data": { "nested": { "path": "comments" }, "aggs": { "average_rating": { "avg": { "field": "comments.rating" } } } } } }
8. 实际案例
8.1 日志分析
Elasticsearch常用于集中存储和分析日志数据,通过与Logstash和Kibana(即ELK Stack)结合,实现实时日志收集、处理和可视化。
步骤:
- 数据收集:使用Logstash或Beats将日志数据发送到Elasticsearch。
- 数据索引:在Elasticsearch中创建索引并定义映射。
- 数据查询:使用Kibana进行数据查询和可视化分析。
- 报警与监控:基于查询结果设置报警规则,监控系统运行状态。
8.2 电商网站搜索
在电商网站中,Elasticsearch用于实现产品搜索、推荐和个性化排序。
功能:
- 关键词搜索:支持模糊搜索、拼写纠正和同义词扩展。
- 过滤与排序:根据价格、评分、销量等字段进行过滤和排序。
- 推荐系统:基于用户行为数据,提供个性化推荐。
- 实时更新:支持实时数据索引,确保搜索结果的及时性。
8.3 数据分析与可视化
通过Elasticsearch的聚合功能,结合Kibana的可视化能力,实现数据的深入分析和展示。
应用场景:
- 业务指标监控:实时监控关键业务指标,如用户活跃度、销售额等。
- 市场分析:分析市场趋势、用户行为和产品性能。
- 安全分析:检测异常行为,识别潜在的安全威胁。
9. 性能优化
为了提升Elasticsearch的性能,可以从以下几个方面进行优化:
9.1 索引优化
- 合理设计映射:避免使用过多的字段类型,使用适当的数据类型和分词器。
- 使用合适的分片数:根据数据规模和查询需求,合理设置分片数,避免过多或过少的分片。
- 禁用不必要的索引:对不需要搜索的字段禁用索引,提高写入性能。
9.2 查询优化
- 使用过滤器:尽量使用过滤器(filter)而非查询(query)进行精确匹配,提高缓存命中率。
- 避免深分页:深分页会导致性能下降,建议使用
search_after
或scroll
API进行大规模数据的遍历。 - 限制返回字段:仅返回必要的字段,减少网络传输和序列化开销。
9.3 硬件优化
- 内存优化:确保Elasticsearch节点有足够的内存,JVM堆内存设置不超过系统内存的50%,且不超过32 GB。
- 磁盘优化:使用SSD存储,提高读写性能,确保磁盘空间充足。
- 网络优化:优化网络带宽和延迟,确保节点间通信高效。
9.4 集群管理
- 监控与报警:使用监控工具(如Kibana的监控功能、Elasticsearch自身的监控API)实时监控集群健康状态。
- 节点扩展:根据数据增长和查询需求,动态增加节点以扩展集群容量和性能。
- 索引生命周期管理(ILM):自动管理索引的生命周期,优化存储和性能。
10. 安全与监控
10.1 安全配置
Elasticsearch提供了多种安全机制,确保数据的安全性和访问控制。
安全机制 | 描述 |
---|---|
身份验证与授权 | 使用X-Pack或第三方插件实现用户身份验证和权限控制。 |
传输加密 | 使用TLS/SSL加密节点间和客户端与节点之间的通信。 |
审计日志 | 记录用户操作和系统事件,便于安全审计和问题追踪。 |
防火墙与网络隔离 | 配置防火墙规则和网络隔离,限制不必要的访问。 |
10.2 监控工具
- Kibana Monitoring:提供集群健康状态、性能指标和日志分析功能。
- Elasticsearch APIs:通过
/_cat
和/_cluster
等API获取详细的集群和节点信息。 - 第三方监控系统:如Prometheus、Grafana,集成Elasticsearch的监控数据,构建自定义的监控仪表板。
10.3 常见安全配置示例
启用TLS/SSL加密:
-
生成证书: 使用Elasticsearch自带的
certutil
工具生成证书。bash
复制代码
./bin/elasticsearch-certutil cert --pem
-
配置Elasticsearch: 在
elasticsearch.yml
中添加以下配置:yaml
复制代码
xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.key: /path/to/elastic.key xpack.security.transport.ssl.certificate: /path/to/elastic.crt xpack.security.transport.ssl.certificate_authorities: /path/to/ca.crt
-
重启Elasticsearch: 使配置生效,重启Elasticsearch服务。
11. 总结
Elasticsearch作为一款强大的分布式搜索和分析引擎,凭借其高性能、可扩展性和丰富的功能,广泛应用于日志分析、全文搜索、电商推荐和数据可视化等多个领域。通过本文的介绍,您可以了解Elasticsearch的基本原理、安装与配置方法、数据索引与管理、搜索与查询、聚合分析以及性能优化和安全监控等实战应用。随着对Elasticsearch的深入掌握,您将能够构建高效、可靠的数据搜索和分析系统,满足各种复杂的业务需求。
相关文章:

Oracle 数据库安装和配置指南(新)
目录 1. 什么是Oracle数据库? 2. 安装前的准备工作 2.1 硬件要求 2.2 软件要求 2.3 下载Oracle安装包 3. Oracle数据库的安装步骤 3.1 Windows系统安装步骤 3.2 Linux系统安装步骤 4. 配置Oracle数据库 4.1 设置环境变量(Linux) 4.…...

JavaScript的注释与常见输出方式
注释 源码中注释是不被引擎所解释的,它的作用是对代码进行解释。Javascript 提供两种注释的写法:一种是单行注释,用//起头;另一种是多行注释,放在/*和*/之间。 单行注释: //这是单行注释 多行注释: /*这是 多行 注…...

深入探索Android开发之Java核心技术学习大全
Android作为全球最流行的移动操作系统之一,其开发技能的需求日益增长。本文将为您介绍一套专为Android开发者设计的Java核心技术学习资料,包括详细的学习大纲、PDF文档、源代码以及配套视频教程,帮助您从Java基础到高级特性,再到A…...

vue3 选择字体的颜色,使用vue3-colorpicker来选择颜色
1、有的时候我们会用到颜色的选择器,像element-plus提供了,但是ant-design-vue并没有: 这个暂时没有看到: 但是Ant Design 5的版本有,应该不是vue的。 2、使用第三方提供的vue3-colorpicker:storybook/cli…...

windows C++ 并行编程-使用消息块筛选器
本文档演示了如何使用筛选器函数,使异步消息块能够根据消息的有效负载接受或拒绝消息。 创建消息块对象(例如 concurrency::unbounded_buffer、concurrency::call 或 concurrency::transformer)时,可以提供筛选器函数,用于确定消息块是接受还…...

【mysql技术内幕】
MySQL之技术内幕 1.MVCC模式2. 实现mvcc模式的基础点3.MySQL锁的类型4. 说下MySQL的索引有哪些吧?5. 谈谈分库分表6. 分表后的id咋么保证唯一性呢?7. 分表后非sharding key的查询咋么处理的? 1.MVCC模式 MVCC, 是multi-version concurrency c…...

快递物流单号识别API接口DEMO下载
单号识别API为用户提供单号识别快递公司服务,依托于快递鸟大数据平台,用户提供快递单号,即可实时返回可能的一个或多个快递公司,存在多个快递公司结果的,大数据平台根据可能性、单号量,进行智能排序。 应用…...

Jetpack——Room
概述 Room是谷歌公司推出的数据库处理框架,该框架同样基于SQLite,但它通过注解技术极大简化了数据库操作,减少了原来相当一部分编码工作量。在使用Room之前,要先修改模块的build.gradle文件,往dependencies节点添加下…...

Dynamic Connected Networks for Chinese Spelling Check(ACL2021)
Dynamic Connected Networks for Chinese Spelling Check(ACL2021) 一.概述 文中认为基于bert的非自回归语言模型依赖于输出独立性假设。不适当的独立性假设阻碍了基于bert的模型学习目标token之间的依赖关系,从而导致了不连贯的问题。为些,…...

前端vue-3种生命周期,只能在各自的领域使用
上面的表格可以简化为下面的两句话: setup是语法糖,下面的两个import导入是vue3和vue2的区别,现在的vue3直接导入,比之前vue2简单 还可以是导入两个生命周期函数...

el-upload如何自定展示上传的文件
Element UI 中,el-upload 组件支持通过插槽(slot)来自定义文件列表的展示方式。这通常是通过 file-list 插槽来实现的。下面是一个使用 el-upload 组件并通过 file-list 插槽来自定义文件列表展示的完整示例代码。 在这个示例中,…...

研1日记15
1. 文心一言生成: 在PyTorch中,nn.AdaptiveAvgPool1d(1)是一个一维自适应平均池化层。这个层的作用是将输入的特征图(或称为张量)在一维上进行自适应平均池化,使得输出特征图的大小在指定的维度上变为1。这意味着&…...

基于Nginx搭建点播直播服务器
实现直播和点播离不开服务器⽀持,可以使用开源的NGINX服务器搭建直播和点播服务。 当然,NGINX本身是不⽀持视频的,需要为NGINX增加相应的RTMP模块进行支持。 1、下载nginx和rtmp模块 # nginx wget ht tp://nginx.org/download/nginx-1.18.…...

QT LineEdit显示模式
QT LineEdit显示模式 QLineEdit 显示模式: Normal 普通模式 NoEcho 不回写,即输入内容是有的,但是显示不出来,就是不在 QLineEdit 输入框中显示,但是触发例如 textChanged 信号会将所输入的文字写出来 Password 显示密码 Pa…...

IT技术在数字化转型中的关键作用
IT技术在数字化转型中的关键作用 在当今数字化浪潮中,IT技术无疑扮演着核心角色。无论是企业的数字化转型,还是政府公共服务的智能化提升,信息技术都在推动着整个社会向更高效、更智能的方向发展。本文将探讨IT技术在数字化转型中的关键作用…...

【C++指南】C++中nullptr的深入解析
💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 引言 一、nullptr的引入背景 二、nullptr的特点 1.类型安全 2.明确的空指针表示 3.函数重载支…...

解决启动docker desktop报The network name cannot be found的问题
现象 deploying WSL2 distributions ensuring main distro is deployed: checking if main distro is up to date: checking main distro bootstrap version: getting main distro bootstrap version: open \wsl$\docker-desktop\etc\wsl_bootstrap_version: The network name…...

Guava: 探索 Google 的 Java 核心库
Guava 是 Google 开发的一套 Java 核心库,它提供了一系列新的集合类型(例如多映射 multimap 和多集合 multiset)、不可变集合、图形库以及用于并发、I/O、哈希、原始类型、字符串等的实用工具。Guava 在 Google 的大多数 Java 项目中得到了广…...

Qt-qmake概述
概述 qmake工具为您提供了一个面向项目的系统,用于管理应用程序、库和其他组件的构建过程。这种方法使您能够控制使用的源文件,并允许简洁地描述过程中的每个步骤,通常在单个文件中。qmake将每个项目文件中的信息扩展为一个Makefile…...

【protobuf】ProtoBuf的学习与使用⸺C++
W...Y的主页 😊 代码仓库分享💕 前言:之前我们学习了Linux与windows的protobuf安装,知道protobuf是做序列化操作的应用,今天我们来学习一下protobuf。 目录 ⼀、初识ProtoBuf 步骤1:创建.proto文件 步…...

【iOS】MVC架构模式
文章目录 前言MVC架构模式基本概念通信方式简单应用 总结 前言 “MVC”,即Model(模型),View(视图),Controller(控制器),MVC模式是架构模式的一种。 关于“架构模式”&a…...

ML 系列:机器学习和深度学习的深层次总结(08)—欠拟合、过拟合,正确拟合
ML 系列赛:第 9 天 — Under、Over 和 Good Fit 文章目录 一、说明二、了解欠拟合、过拟合和实现正确的平衡三、关于泛化四、欠拟合五、过拟合六、适度拟合七、结论 一、说明 在有监督学习过程中,对于指定数据集进行训练,训练结果存在欠拟合…...

Unity-物理系统-刚体加力
一 刚体自带添加力的方法 给刚体加力的目标就是 让其有一个速度 朝向某一个方向移动 1.首先应该获取刚体组件 rigidBody this.GetComponent<Rigidbody>(); 2.添加力 //相对世界坐标 //世界坐标系 Z轴正方向加了一个里 //加力过后 对象是否停止…...

深入探究PR:那些被忽视却超实用的视频剪辑工具
如果想要了解视频剪辑的工具,那一定听说过pr视频剪辑吧。如果你是新手其实我更推荐你从简单的视频剪辑工具入手,这次我就介绍一些简单好操作的视频剪辑工具来入门吧。 1.福晰视频剪辑 连接直达>>https://www.pdf365.cn/foxit-clip/ 这款工具操…...

Unity-麦克风输入相关
private AudioClip clip; 知识点一 获取设备麦克风信息 string[] strs Microphone.devices; for (int i 0; i < strs.Length; i) { print(strs[i]); } 知识点二 开始录制 参数一:设备名 传空使用默认设备 参数二:超过录…...

NLP--自然语言处理学习-day1
一.初步认识NLP 自然语言处理(Natural Language Processing, NLP)是计算机科学和人工智能(AI)的一个交叉领域,旨在使计算机能够理解、分析、生成和处理人类语言的能力。它结合了计算语言学、人工智能、机器学习和语言…...

ER论文阅读-Incomplete Multimodality-Diffused Emotion Recognition
基本介绍:NeurIPS, 2024, CCF-A 原文链接:https://proceedings.neurips.cc/paper_files/paper/2023/file/372cb7805eaccb2b7eed641271a30eec-Paper-Conference.pdf Abstract 人类多模态情感识别(MER)旨在通过多种异质模态&#x…...

Matlab自学笔记36:日期时间型的概念、分类和创建方法
1.概念 日期时间型(Dates and Time)数据具有灵活的显示格式和高达毫微秒的精度,并且可以处理时区、夏令时和平闰年等特殊因素 2.日期时间型数据有以下三种表示方式 (1)Datetime型,表示日期时间点&#x…...

Spring Boot自定义配置项
Spring Boot自定义配置项 配置文件 在application.properties文件添加需要的配置 比如: file.pathD:\\flies\\springboot\\ConfigurationProperties 注解 使用注解ConfigurationProperties将配置项和实体Bean关联起来,实现配置项和实体类字段的关联&…...

【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略
文章目录 C类与对象前言读者须知RVO 与 NRVO 的启用条件如何确认优化是否启用? 1. 按值传递与拷贝省略1.1 按值传递的概念1.2 示例代码1.3 按值传递的性能影响1.3.1 完全不优化 1.4 不同编译器下的优化表现1.4.1 Visual Studio 2019普通优化1.4.2 Visual Studio 202…...