当前位置: 首页 > news >正文

【Elasticsearch入门到落地】5、安装IK分词器

接上篇《4、Elasticsearch的安装》
上一篇我们进行了Elasticsearch以及Kibana的环境准备及软件安装,本篇我们安装最后一个支持软件IK分词器。

一、IK分词器概念

我们再来回顾一下上一张IK分词器的概念:
IK分词器(IK Analyzer)是一款开源的中文分词工具,支持智能分词、细粒度分词等多种分词模式。它基于词典的分词算法,结合了最大匹配法和逆向最大匹配法,能够在保证分词准确性的同时,保持较高的分词速度。IK分词器的主要作用是将中文文本切分为有意义的词项,为后续的文本分析、信息检索、机器学习等任务提供基础数据。其优势在于高效性、灵活性和多种分词模式,适用于不同的应用场景。

Elasticsearch、Kibana和IK分词器在数据处理和搜索分析领域各自扮演着重要的角色。Elasticsearch负责存储、搜索和分析数据;Kibana负责数据的可视化和管理;而IK分词器则专注于中文文本的分词处理,为Elasticsearch等搜索引擎提供准确的分词结果。

二、安装IK分词器插件

1、在线安装IK插件(较慢)

我们可以从github上安装开源的ik分词器插件,分为以下几步:

# 进入容器内部
docker exec -it elasticsearch /bin/bash# 在线下载并安装
./bin/elasticsearch-plugin  install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip#退出
exit
#重启容器
docker restart elasticsearch

但是这种受制于外网的网速原因,安装的时间比较长。我们推荐离线安装。

2、离线安装ik插件(推荐)

(1)查看数据卷目录

安装插件需要知道elasticsearch的plugins目录位置,而我们用了数据卷挂载,因此需要查看elasticsearch的数据卷目录,通过下面命令查看:

docker volume inspect es-plugins

显示结果:

说明plugins目录被挂载到了:/var/lib/docker/volumes/es-plugins/_data这个目录中。

(2)解压缩分词器安装包

下面我们需要把之前下载的安装包中的ik分词器解压缩(https://download.csdn.net/download/booguojieji/85329645),重命名为ik:

注:zip如果直接在linux中解压的话,需要提前安装unzip命令(sudo yum install unzip)。
解压完毕后,可以看到具体的IK分词器安装包中的内容:

(3)将ik文件夹上传到es容器的插件数据卷中

从解压后的ik文件夹所在的目录,复制该文件夹到/var/lib/docker/volumes/es-plugins/_data目录下,也就是刚刚查到es容器的plugins目录:

sudo cp -rp /home/ik /var/lib/docker/volumes/es-plugins/_data/


注:想要将/home/ik文件夹完整地复制到/var/lib/docker/volumes/es-plugins/_data目录下,需要使用cp命令结合-r(递归复制整个目录树)和-p(保留文件的属性,如时间戳、权限等)选项。

(4)重启容器

使用docker restart es重启es的容器,使其可以重新加载plugins目录,然后使用docker logs -f es查看启动日志:

# 4、重启容器
docker restart es
# 查看es日志
docker logs -f es

日志中我们如果看到“loaded plugin [analysis-ik]”字样,证明我们的ik分词器插件已经在es中安装成功:

(5)测试

IK分词器包含两种模式:

ik_smart:最少切分
ik_max_word:最细切分
GET /_analyze
{"analyzer": "ik_max_word","text": "星巴克的美式咖啡太好喝了"
}

这段语法是用于在Elasticsearch中使用IK分词器对文本进行分析的HTTP GET请求。下面是对各个部分的解释:
1)HTTP方法:GET
这里使用的是HTTP的GET方法,用于从服务器请求数据。在这个上下文中,它不是用来获取存储的数据,而是用来触发一个分析操作。
2)URL:/_analyze
URL指向Elasticsearch的_analyze端点。这个端点允许你对文本进行分析,查看它是如何被分词器分割成词条的。
3)请求体(Body):
请求体包含了要执行的分析操作的详细参数。
●"analyzer": "ik_max_word":
这里指定了要使用的分词器是ik_max_word。IK分词器是Elasticsearch的一个中文分词插件,提供了ik_smart和ik_max_word两种分词模式。ik_max_word会将文本做最细粒度的拆分,适合用于索引建立时做尽可能多的匹配。
●"text": "星巴克的美式咖啡太好喝了":
这里是要被分析的文本。在这个例子中,文本是中文和英文的混合,包含了“星巴克”、“美式”、“咖啡”和“太好喝了”这些词汇。

当这个请求被发送到Elasticsearch时,它会使用ik_max_word分词器对指定的文本进行分析,并返回分析的结果。结果通常包括分词后的词条列表,以及每个词条对应的起始和结束位置等信息(尽管这些信息可能不是所有情况下都会返回,具体取决于Elasticsearch的配置和请求的参数)。

我们打开Kibana,在右上角点击“Dev Tools”,进入开发工具的调试界面,输入上述指令,查看结果:

可以发现我们用最细切分将测试语句,拆分成了一个一个的词语。

三、扩展词词典

随着互联网的发展,“造词运动”也越发的频繁。出现了很多新的词语,在原有的词汇列表中并不存在。比如:“奥力给”,“葛优躺” 等。
所以我们的词汇也需要不断的更新,IK分词器提供了扩展词汇的功能。

1、打开IK分词器config目录

2、配置IKAnalyzer.cfg.xml文件

在IKAnalyzer.cfg.xml配置文件内容添加(vim IKAnalyzer.cfg.xml)


主要是在<entry key="ext_dict">ext.dic</entry>中添加一个“ext.dic”。
然后新建一个 ext.dic,可以参考config目录下复制一个配置文件进行修改:

3、重启elasticsearch

docker restart es
# 查看 日志
docker logs -f es

看到下面的语句,证明我们已经成功加载ext.dic配置文件:

4、测试效果

四、停用词词典

在互联网项目中,在网络间传输的速度很快,所以很多语言是不允许在网络上传递的,如:关于宗教、政治等敏感词语,那么我们在搜索时也应该忽略当前词汇。
IK分词器也提供了强大的停用词功能,让我们在索引时就直接忽略当前的停用词汇表中的内容。

1、配置IKAnalyzer.cfg.xml文件

IKAnalyzer.cfg.xml配置文件内容添加扩展停止词字典:

主要是在<entry key="ext_stopwords">stopword.dic</entry>中添加一个“stopword.dic”。
然后新建一个stopword.dic,在stopword.dic添加停用词:

2、重启elasticsearch

# 重启服务
docker restart es
docker restart kibana
# 查看 日志
docker logs -f es

日志中已经成功加载stopword.dic配置文件:

3、测试效果

至此,关于IK分词器的安装就讲解完毕了。下一篇我们来学习索引库的操作。

参考:《黑马Elasticsearch全套教程》
转载请注明出处:https://guangzai.blog.csdn.net/article/details/144864948

相关文章:

【Elasticsearch入门到落地】5、安装IK分词器

接上篇《4、Elasticsearch的安装》 上一篇我们进行了Elasticsearch以及Kibana的环境准备及软件安装&#xff0c;本篇我们安装最后一个支持软件IK分词器。 一、IK分词器概念 我们再来回顾一下上一张IK分词器的概念&#xff1a; IK分词器&#xff08;IK Analyzer&#xff09;是…...

8、RAG论文笔记(Retrieval-Augmented Generation检索增强生成)

RAG论文笔记 1、 **研究背景与动机**2、方法概述3、RAG 模型架构3.1总体架构3.2 Generator&#xff08;生成器&#xff09;3.3 检索器&#xff08;Retriever&#xff09;3.4训练&#xff08;Training&#xff09;3.5**解码方法**&#xff08;求近似 &#xff09;3.6微调的参数 …...

【论文笔记】Contrastive Learning for Sign Language Recognition and Translation

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: Contrastive Learning for…...

《C++设计模式》策略模式

文章目录 1、引言1.1 什么是策略模式1.2 策略模式的应用场景1.3 本文结构概览 2、策略模式的基本概念2.1 定义与结构2.2 核心角色解析2.2.1 策略接口&#xff08;Strategy&#xff09;2.2.2 具体策略实现&#xff08;ConcreteStrategy&#xff09;2.2.3 上下文&#xff08;Cont…...

细说STM32F407单片机轮询方式CAN通信

目录 一、项目介绍 二、项目配置 1、时钟、DEBUG、USART6、NVIC、GPIO、CodeGenerator 2、CAN1 &#xff08;1&#xff09;Bit Timings Parameters组&#xff0c;位时序参数 &#xff08;2&#xff09;Basic Parameters组&#xff0c;基本参数 &#xff08;3&#xff09…...

perf:对hutool的BeanUtil工具类做补充

分享一个自定义的BeanUtil&#xff0c;继承的是hutool的工具类&#xff0c;然后自己扩充了几个方法&#xff1b; 1、实现了两个对象覆盖非空属性的功能&#xff08;经常使用&#xff09;&#xff0c;不需要设置CopyOptions&#xff1b; 2、两个对象&#xff0c;对指定前缀的属…...

【数据结构】栈与队列(FIFO)

在阅读该篇文章之前&#xff0c;可以先了解一下堆栈寄存器和栈帧的运作原理&#xff1a;<【操作系统】堆栈寄存器sp详解以及栈帧>。 栈(FILO) 特性: 栈区的存储遵循着先进后出的原则。 例子: 枪的弹夹&#xff0c;最先装进去的子弹最后射出来&#xff0c;最后装入的子弹…...

02.01、移除重复节点

02.01、[简单] 移除重复节点 1、题目描述 编写代码&#xff0c;移除未排序链表中的重复节点。保留最开始出现的节点。 2、解题思路 为了实现这一目标&#xff0c;我们可以使用一个哈希表&#xff08;或集合&#xff09;来记录已经遇到的节点值&#xff0c;逐步遍历链表并删…...

Spring thymeleaf 的快速默认搭建使用

Spring thymeleaf 的快速默认搭建使用 thymeleaf 的搭建Pom 文件 thymeleaf 的使用Controller返回参数String资源文件路径访问端点显示HTML页面 thymeleaf 的搭建 Pom 文件 Pom 文件引入 spring-boot-starter-thymeleaf 依赖 <dependency><groupId>org.springfra…...

unity学习3:如何从github下载开源的unity项目

目录 1 网上别人提供的一些github的unity项目 2 如何下载github上的开源项目呢&#xff1f; 2.1.0 下载工具 2.1.1 下载方法1 2.1.2 下载方法2&#xff08;适合内部项目&#xff09; 2.1.3 第1个项目 和第4项目 的比较 第1个项目 第2个项目 第3个项目 2.1.4 下载方法…...

印象笔记07——试一试PDF标注

印象笔记07——试一试PDF标注 [!CAUTION] 根据第六期&#xff0c;我再次查询了资料&#xff0c;印象笔记还是有一些可圈可点的功能的&#xff08;当然部分有平替&#xff09;&#xff0c;针对会员作用&#xff0c;开发使用场景虽然是逆向的&#xff0c;但我坚信这是一部分人的现…...

Logback的使用

1、基本认识 logback官方文档&#xff1a;http://logback.qos.ch 具体样例&#xff1a;https://www.baeldung.com/logback 从下面依赖关系图可以看见&#xff0c;Springboot的核心启动器spring-boot-stater依赖了spring-boot-starter-looging&#xff0c;而这个就是日志的启动器…...

沙箱模拟支付宝支付3--支付的实现

1 支付流程实现 演示案例 主要参考程序员青戈的视频【支付宝沙箱支付快速集成版】支付宝沙箱支付快速集成版_哔哩哔哩_bilibili 对应的源码在 alipay-demo: 使用支付宝沙箱实现支付功能 - Gitee.com 以下是完整的实现步骤 1.首先导入相关的依赖 <?xml version"1…...

微信小程序滑动解锁、滑动验证

微信小程序简单滑动解锁 效果 通过 movable-view &#xff08;可移动的视图容器&#xff0c;在页面中可以拖拽滑动&#xff09;实现的简单微信小程序滑动验证 movable-view 官方说明&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/component/movable-view.ht…...

Redis的常用命令

Redis中文字典网站 redis 命令手册https://redis.com.cn/commands.html Keys * 查看当前库所有的key exists ke 判断某个key是否存在 type key查看你的key是什么类型 Del key删除执行的key数据 unlink key非阻塞删除&#xff0c;仅仅将keys从keyspace元数据中删除&#xf…...

国内Ubuntu环境Docker部署 ComfyUI

国内Ubuntu环境Docker部署 ComfyUI 趁着这两天用docker部署了 Stable Diffusion&#xff0c;顺手也安排上 ComfyUI。 ComfyUI相比 Stable Diffusion 原生的 WEB UI&#xff0c;更容易让人了解其出图的过程&#xff0c;极其适合学习与研究。拼接其强大的插件节点、不仅能够实现文…...

Meta 的新策略,将 AI 生成的角色整合到其社交媒体平台

一、Meta新年规划及引人注目的举措 多元规划背景&#xff1a;在新的一年&#xff0c;Meta制定了多维度的战略规划&#xff0c;旨在巩固并拓展其在科技领域的影响力。增强现实与元宇宙是其长期布局的重点方向&#xff0c;期望借此塑造未来互联网的交互形态&#xff1b;面对TikTo…...

玩转OCR | 腾讯云智能结构化OCR初次体验

目录 一、什么是OCR&#xff08;需要了解&#xff09; 二、产品概述与核心优势 产品概述 智能结构化能做什么 举例说明&#xff08;选看&#xff09; 1、物流单据识别 2、常见证件识别 3、票据单据识别 4、行业材料识别 三、产品特性 高精度 泛化性 易用性 四、…...

蓝桥杯JAVA--003

需求 2.代码 public class RegularExpressionMatching {public boolean isMatch(String s, String p) {if (p.isEmpty()) {return s.isEmpty();}boolean firstMatch !s.isEmpty() && (s.charAt(0) p.charAt(0) || p.charAt(0) .);if (p.length() > 2 && p…...

STC51和STM32单片机烧录引脚的完整名称

STC51 和 STM32 单片机烧录引脚的完整名称 1. STC51 单片机的烧录引脚 STC51 单片机通过 串口&#xff08;UART&#xff09; 进行程序下载&#xff0c;主要引脚如下&#xff1a; 引脚名称完整英文名称说明TXDTransmit Data串口发送引脚&#xff0c;用于发送数据。RXDReceive…...

阿里云大模型ACP高级工程师认证模拟试题

阿里云大模型ACP高级工程师认证模拟试题 0. 引言1. 模拟试题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题多选题单选题单选题单选题多选题多选题单选题多选题单…...

深入理解计算机中的补码、反码、原码

问题&#xff1a; 我们每天用的钟表&#xff0c;其实只有1~12这12个数字&#xff0c;但我们日常会说13点、17点之类的。 问&#xff1a;13点在钟表上哪个位置&#xff1f; 答&#xff1a;很简单嘛&#xff0c;1点的位置。 你不觉得奇怪吗&#xff0c;为啥13点会和1点在同一个位…...

调试:用电脑开发移动端网页,然后用手机真机调试

一、背景 电脑开发移动端&#xff0c;然后想真机调试... 二、实现 2.1、电脑和手机链接相同局域网 2.2、pnpm run dev 启动项目 2.3、浏览器访问 localhost:3001/login 2.4、Windowsr 输入cmd&#xff0c;在cmd输入 ipconfig 2.5、浏览器访问 ip地址加/login 2.6、手机端…...

深入浅出:Spring Boot 自定义消息转换器的实现与应用

Spring Boot 作为当前最流行的 Java Web 开发框架之一&#xff0c;广泛应用于微服务架构、企业级应用等多个场景。Spring Boot 提供了灵活且易于扩展的架构&#xff0c;其中消息转换器&#xff08;Message Converter&#xff09;是其重要组成部分。消息转换器在 Spring Boot 中…...

基于AI大模型的医院SOP优化:架构、实践与展望

一、引言 1.1 研究背景与意义 近年来,人工智能(AI)技术取得了迅猛发展,尤其是大模型的出现,为各个领域带来了革命性的变化。在医疗领域,AI 医疗大模型正逐渐崭露头角,展现出巨大的应用潜力。随着医疗数据的海量积累以及计算能力的大幅提升,AI 医疗大模型能够对复杂的…...

Maven项目集成SQL Server的完整教程:从驱动配置到封装优化

前言 在最近的系统对接过程中&#xff0c;由于对方团队不熟悉技术&#xff0c;最终选择直接提供 SQL Server 视图。本文详细记录了使用 Maven 集成 SQL Server 驱动的过程&#xff0c;以及从配置到查询的各个关键步骤&#xff0c;还包括注意事项与常见问题&#xff0c;希望对需…...

Java 21 优雅和安全地处理 null

在 Java 21 中,判断 null 依然是开发中常见的需求。通过使用现代 Java 提供的工具和特性,可以更加优雅和安全地处理 null。 1. 使用 Objects.requireNonNull Objects.requireNonNull 是标准的工具方法,用于快速判断并抛出异常。 示例 import java.util.Objects;public c…...

Java(四十四)file

Java中的file类:代表文件或者文件夹(目录)类,也就是说将文件或者文件夹通过File类来封装成对象。 一:常用的构造方法: 使用file类,需要通过构造方法创建一个file对象。 1:public File(String pathname) public static void main(String[] args) {File fl = new File(&…...

【51项目】51单片机自制小霸王游戏机

视频演示效果: 纳新作品——小霸王游戏机 目录: 目录 视频演示效果: 目录: 前言:...

【ArcGISPro/GeoScenePro】检查多光谱影像的属性并优化其外观

数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 操作 其他数据 检查影像的属性 熟悉检查您正在使用的栅格属性非常重要。...

《新概念模拟电路》-三极管

三极管 本系列文章主要学习《新概念模拟电路》中的知识点。在工作过程中&#xff0c;碰到一些问题&#xff0c;于是又翻阅了模电这本书。我翻阅的是ADI出版的&#xff0c;西安交通大学电工中心杨建国老师编写的模电书。 <模电>和《数电》这两本书是电子学的专业基础课&…...

K 近邻算法入门指南:明氏距离与皮尔森距离的基础讲解

1、K近邻算法介绍 K近邻(k-Nearest Neighbor&#xff0c;KNN)分类算法的思路是&#xff1a;在特征空间中&#xff0c;如果一个样本附近的k个最近样本的大多数属于某一个类别&#xff0c;则该样本也属于这个类别。K近邻算法中&#xff0c;所选择的邻居都是已经正确分类的对象。…...

如何验证imap是否生效

要验证您的 Outlook 邮箱是否启用了 IMAP 并且正常工作&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 确认 Outlook 邮箱是否启用 IMAP 步骤&#xff1a; 登录到您的 Outlook Web 账户&#xff1a; 打开浏览器&#xff0c;访问 Outlook.com 或 Microsoft 365 Outlook…...

MySQL 06 章——多表查询

多表查询&#xff0c;也称为关联查询&#xff0c;是指两个表或多个表一起完成查询操作 前提条件&#xff0c;这些一起查询的表之间是有关系的&#xff08;一对一、一对多&#xff09;&#xff0c;它们之间一定是有关联字段的。这个关联字段可能建立了外键&#xff0c;也可能没…...

转换VMware Esxi 虚拟机到 Windows2019 Hyper-V Server

Hyper-v专用P2V工具disk2vhd实际应用 工具介绍 disk2vhd是一个非常小的P2V转换工具&#xff0c;可以将你的物理服务器或Esxi vm 转换成为VHD或者vhdx格式的虚拟硬盘文件&#xff0c;然后在虚拟平台上作为一台虚拟机来使用。目前disk2vhd的最新版本是2.0.1&#xff0c;已经可以…...

头歌实训2-1:面向对象程序设计-基础部分

第1关&#xff1a;定义银行员工类BankEmployee 本关任务&#xff1a;编写银行员工类BankEmployee&#xff0c;要求&#xff1a; 1.银行员工类的属性包括姓名name&#xff0c;工号num&#xff0c;工资salary 2.姓名name和工号num设置为私有属性,并将salay设置为默认参数3000 平…...

超高分辨率 图像 分割处理

文章大纲 制造业半导体领域高分辨率图像半导体数据集开源的高分辨率晶圆图像数据集1. WM-811K数据集2. Kaggle上的WM-811K Clean Subset数据集医疗 病理领域高分辨率图像1. Camelyon+2. CAMELYON173. CPIA Dataset4. UCF-WSI-Dataset航拍 遥感中的高分辨率 图像航拍遥感领域高分…...

使用 apply 方法将其他列的值传入 DataFrame 或 Series 的函数,来进行更灵活的计算或操作

可以使用 apply 方法将其他列的值传入 DataFrame 或 Series 的函数&#xff0c;来进行更灵活的计算或操作。apply 方法允许你逐行或逐列地对 DataFrame 或 Series 的元素进行操作&#xff0c;而且你可以将其他列的值作为参数传递给函数。 示例&#xff1a;使用 apply 结合其他…...

[CTF/网络安全] 攻防世界 warmup 解题详析

查看页面源代码&#xff0c;发现source.php 得到一串代码&#xff0c;进行代码审计&#xff1a; <?phpclass emmm{public static function checkFile(&$page){$whitelist ["source">"source.php","hint">"hint.php"];…...

力扣第389题—找不同

class Solution:def findTheDifference(self, s: str, t: str) -> str:# 对字符串 s 和 t 进行排序a sorted(s)b sorted(t)# 比较排序后的两个列表for i in range(len(a)):if a[i] ! b[i]:return b[i]# 如果前面的比较没有找到差异&#xff0c;那么差异字符在 t 的最后一个…...

vite6+vue3+ts+prettier+eslint9配置前端项目(后台管理系统、移动端H5项目通用配置)

很多小伙伴苦于无法搭建一个规范的前端项目&#xff0c;导致后续开发不规范&#xff0c;今天给大家带来一个基于Vite6TypeScriptVue3ESlint9Prettier的搭建教程。 目录 一、基础配置1、初始化项目2、代码质量风格的统一2.1、配置prettier2.2、配置eslint2.3、配置typescript 3、…...

滴滴数据分析80道面试题及参考答案

如何衡量分类好坏? 衡量分类好坏有多种方法,常用的有准确率、精确率、召回率、F1 值、ROC 曲线与 AUC 值等。 准确率:是指分类正确的样本数占总样本数的比例,计算公式为:准确率 = (分类正确的样本数)/(总样本数)。准确率越高,说明分类器整体的分类效果越好,但在正负…...

嵌入式应用软件开发中C语言方向面试题

嵌入式应用软件开发中C语言方向面试题随笔 前言一、C语言基础二、嵌入式开发相关三、硬件相关知识五、实际编程问题前言 做嵌入式开发这么多年了,简单记录下C语言方向常见面试题,这里是应用软件方向的。 一、C语言基础 C语言的指针与数组的区别是什么?指针:指针是一个变量…...

vue3中mixins替代方案

使用自定义 Hooks&#xff08;Composables&#xff09; 自定义 Hooks 是一种基于函数的代码复用方式&#xff0c;可以在 setup 函数中使用。它允许将组件的逻辑分割成更小的、可复用的部分。 useCounter.js //useCounter.js import { ref, onMounted } from vue;export func…...

线性代数自学资源推荐我的个人学习心得

1.前言 自己这个学期的课程基本上就结束了&#xff0c;因此我自己就开始学习下个学期的课程--线性代数&#xff0c;也是我们在大学里面的最后一门数学课程了&#xff1b; 之前有过一些这个线性代数的基础&#xff0c;当时主要是参加这个数学建模比赛去学习这个matlab吗&#…...

WordPress Crypto 插件 身份认证绕过漏洞复现(CVE-2024-9989)

0x01 产品简介 WordPress Crypto插件是指那些能够为WordPress网站提供加密货币支付、信息显示或交易功能的插件。这些插件通常与WordPress电子商务插件(如WooCommerce)集成,使网站能够接受多种加密货币支付,或展示加密货币实时信息。支持多种加密货币支付,付款直接进入钱…...

软件逆向之OD基础

OD程序目录 plugin&#xff1a;存放OD所有插件 UDD&#xff1a;存放程序临时的数据&#xff0c;比如&#xff1a;程序注释、断点等 ollydbg.ini&#xff1a;存放OD自身配置的属性表 OLLYDBG.HLP&#xff1a;OD的帮助手册 OD断点 1.软件断点&#xff1a; 介绍&#xff1a…...

C++并发编程之内存顺序一致性

std::memory_order_seq_cst 是 C11 引入的内存模型中的一种内存顺序&#xff08;memory order&#xff09;&#xff0c;全称为 Sequential Consistency&#xff08;顺序一致性&#xff09;。它是 C 中最严格的内存顺序&#xff0c;提供了最强的同步保证。下面详细解释其含义、意…...

软件测试面试题整理

一、人格相关问题 1、自我介绍结构 姓名工作年限简单介绍上家公司的行业主要负责内容个人优势短期内的职业规划应聘该岗位的原因 2、对未来的发展方向怎么看 3、你对测试最大的兴趣在哪里&#xff1f;为什么&#xff1f; 二、技术相关问题 1、测试理论以及应用 1、给你一个…...

Java中如何实现线程安全的单例模式?

目录 1、懒汉式&#xff08;线程安全&#xff09; 2、饿汉式&#xff08;线程安全&#xff09; 3、双重校验锁&#xff08;线程安全&#xff09; 4、静态内部类&#xff08;推荐&#xff09; 5、枚举&#xff08;最佳方法&#xff09; 6、总结 在Java中&#xff0c;实现线…...