ChatGPT 学习 ES lucene 底层写入原理,源码

news/2024/5/18 19:13:07/文章来源:https://blog.csdn.net/star1210644725/article/details/130051673

一直有个疑问“学习最新版lucene 数据写入相关的源码,应该看哪些源码,以什么顺序看(先看什么,后看什么)?”

对于Lucene的数据写入过程,可以分为以下几个阶段

在学习Lucene的数据写入相关的源码时,可以按照以下阶段的顺序进行学习和理解,以便更好地掌握Lucene的数据写入过程。同时,也需要了解一些相关的类和方法,例如DocumentsWriter、SegmentInfo、IndexWriterConfig等类和方法。

  1. 文档解析阶段:将文档转化为Lucene内部的Document对象。可以使用Analyzer进行文本分析和处理,例如分词、过滤、大小写转换等操作。

  2. 文档加入缓存阶段:将解析出的Document对象加入到内存中的缓存中,通常称为DocumentsWriter。

  3. 索引写入阶段:DocumentsWriter会将缓存中的文档转换成Segment,并将Segment写入磁盘。如果内存缓存中的文档数量达到一定的阈值,DocumentsWriter会触发一次Segment的写入。

  4. Segment合并阶段:Lucene的索引存储结构是由多个Segment组成的。当多个Segment的数量达到一定的阈值时,Lucene会进行Segment的合并操作,以便优化索引的查询效率和存储空间使用。

  5. 索引刷新阶段:将内存中的Segment刷新到磁盘中,并将新的Segment信息添加到SegmentInfo中。

  6. 索引提交阶段:当多个Segment的数量达到一定的阈值或者IndexWriter关闭时,Lucene会将索引提交,以便保存索引的信息。

在具体的源码学习中,可以按照以下步骤进行

  1. 了解IndexWriter的基本用法和实现原理。可以查看官方文档和相关书籍,了解IndexWriter的构造函数、commit方法、addDocument方法、deleteDocuments方法等基本用法,并对IndexWriter的实现原理有一个大概的了解。

  2. 学习DocumentsWriter的实现原理。DocumentsWriter是Lucene内存中的一个缓存,用于将文档加入缓存中,并将缓存中的文档转换为Segment进行写入。可以查看DocumentsWriter的源码,了解DocumentsWriter的实现原理和主要方法。

  3. 学习Document、Field、Term等相关类的实现原理。Document、Field、Term等类是Lucene索引中的基本单位,需要深入了解它们的实现原理和相关方法。

  4. 学习Analyzer、TokenStream等相关类的实现原理。Analyzer、TokenStream等类是Lucene用于对文本进行分析和处理的类,需要了解它们的实现原理和相关方法。

  5. 学习Segment的实现原理和写入过程。Segment是Lucene索引中的一个单元,需要了解Segment的实现原理和写入过程,以及Segment合并的实现原理和过程。

  6. 学习IndexWriterConfig、IndexCommit等相关类的实现原理。IndexWriterConfig、IndexCommit等类是Lucene用于配置IndexWriter和管理索引提交的类,需要了解它们的实现原理和相关方法。

在学习过程中,可以使用调试工具和日志输出等方式,深入了解Lucene的数据写入过程和相关类和方法的实现细节,以便更好地理解和掌握Lucene的数据写入相关的源码。同时,也需要结合Lucene的官方文档、参考书籍、技术博客等资源进行学习和实践,加深对Lucene的理解和应用。

列出来lucene相关的源码

  在学习这些类时,应该注意它们之间的关系和依赖关系,以便更好地理解Lucene的内部工作原理。同时,也应该查阅Lucene官方文档和源代码注释,以便更好地理解这些类的实现和用法。

要学习最新版的Lucene数据写入相关的源码,可以按照以下顺序阅读:

  1. IndexWriter类: IndexWriter类是Lucene用于创建和更新索引的主要入口点。这个类负责将文档写入索引并管理索引的打开和关闭。可以从IndexWriter类的构造函数开始学习它的实现。

  2. DocumentsWriter类: DocumentsWriter类是IndexWriter的一个内部类,它负责将文档写入内存缓冲区,并在缓冲区满时将其刷新到磁盘上的单个段中。学习这个类可以了解Lucene是如何将文档写入磁盘的。

  3. SegmentWriter类: SegmentWriter类是DocumentsWriter的一个内部类,它负责将文档写入单个段。了解这个类可以深入了解Lucene索引的内部工作原理。

  4. FieldsWriter类: FieldsWriter类是SegmentWriter的一个内部类,它负责将文档字段写入磁盘。学习这个类可以深入了解Lucene索引的字段写入流程。

  5. TermsHash类: TermsHash类是DocumentsWriter的另一个内部类,它负责将文档中的术语写入内存哈希表中。了解这个类可以更好地理解Lucene是如何进行分词和词项化的。

  6. TermVectorsWriter类: TermVectorsWriter类是FieldsWriter的一个内部类,它负责将文档的术语向量写入磁盘。学习这个类可以了解Lucene是如何处理术语向量的。

  7. 相关的其他类: 除了以上列出的类之外,还有一些其他的类与Lucene的数据写入有关。例如,Analyzer类、Document类和Field类等都可以深入了解。

学习这些类的实现可以深入了解Lucene是如何在内存和磁盘之间管理和传输数据的。在学习这些类时,可以查阅Lucene官方文档和源代码注释,以便更好地理解这些类的实现和用法。

  1. FSDirectory类: FSDirectory类是Lucene用于管理索引目录的类。在将文档写入索引时,需要将索引写入磁盘,而FSDirectory类就是负责管理这些索引文件的类。可以学习这个类来了解Lucene是如何在磁盘上管理索引文件的。

  2. IndexOutput和IndexInput类: 这些类是Lucene用于在磁盘上读取和写入二进制文件的类。在将文档写入磁盘时,需要将文档的二进制数据写入磁盘文件中,而IndexOutput类就是负责将数据写入磁盘的类。在读取磁盘上的索引文件时,需要使用IndexInput类读取这些文件的内容。

  3. Codec类: Codec类是Lucene用于对索引进行编解码的类。Lucene支持多种编解码方式,例如默认的Lucene70Codec和其他定制的编解码器。了解这个类可以深入了解Lucene的索引编解码过程。

  4. DocValuesWriter和DocValuesConsumer类: DocValuesWriter和DocValuesConsumer类是Lucene用于将文档值写入磁盘的类。这些值可以用于排序、聚合和筛选等操作。了解这些类可以深入了解Lucene是如何处理文档值的。

  5. NormsWriter和NormsConsumer类: NormsWriter和NormsConsumer类是Lucene用于将规范化因子写入磁盘的类。规范化因子用于在搜索时对字段进行加权,了解这些类可以深入了解Lucene是如何进行字段加权的。

这些类主要涉及Lucene的索引和搜索功能,其中包括索引创建、读取、提交,搜索查询和结果排序等。在学习时,可以结合具体的应用场景,选择相应的类进行深入了解。同时,也需要注意Lucene的性能和安全等问题,对Lucene进行合理配置和使用。

这些类主要涉及Lucene的搜索功能,其中包括对搜索结果的处理和展示,以及对搜索条件的过

滤、模糊搜索、数值范围搜索、词项范围搜索、前缀搜索等功能的实现。如果要学习最新版Lucene数据写入相关的源码,可以先从IndexWriter类开始,该类是Lucene用于写入索引数据的类。可以先了解IndexWriter类的基本用法和实现原理,然后再深入了解相关的类和方法,例如DocumentsWriter、Document、Field、Term、SegmentInfo、SegmentInfoPerCommit等类和方法。

在学习IndexWriter类的过程中,可以涉及到Lucene的索引存储结构、索引优化、多线程写入、数据合并等方面的知识。同时,也需要了解一些相关的类和方法,例如Analyzer、IndexOptions、FieldType、IndexWriterConfig、IndexCommit等类和方法。在学习过程中,建议先从简单的类和方法开始,逐渐深入复杂的类和方法,以便更好地理解Lucene的数据写入相关的源码。

  1. LiveDocsFormat类: LiveDocsFormat类是Lucene用于管理删除文档的类。在索引文档时,有时需要删除某些文档,而LiveDocsFormat类就是负责管理这些已删除文档的类。了解这个类可以深入了解Lucene是如何删除文档的。

  2. MergePolicy和MergeScheduler类: MergePolicy和MergeScheduler类是Lucene用于控制索引段合并的类。在将文档写入索引时,Lucene会将文档写入多个索引段中,当这些段达到一定大小时,就需要将它们合并为更大的段。MergePolicy和MergeScheduler类就是负责管理这个过程的类。了解这些类可以深入了解Lucene的索引合并过程。

  3. DirectoryReader和SegmentReader类: DirectoryReader和SegmentReader类是Lucene用于读取索引的类。在搜索文档时,需要从索引中读取数据,而这些类就是负责读取索引的类。了解这些类可以深入了解Lucene是如何读取索引的。

  4. PostingFormat类: PostingFormat类是Lucene用于管理词项位置和频率信息的类。在将文档写入索引时,Lucene会记录文档中每个词项的位置和出现频率,而PostingFormat类就是负责管理这个信息的类。了解这个类可以深入了解Lucene是如何记录文档中的词项信息的。

  5. Similarity类: Similarity类是Lucene用于计算文档相似度的类。在搜索文档时,需要计算文档与查询之间的相似度,而Similarity类就是负责计算相似度的类。了解这个类可以深入了解Lucene是如何计算文档相似度的。

  6. FuzzyQuery类: FuzzyQuery类是Lucene用于模糊搜索的类。在搜索时,有时候需要考虑单词的拼写错误或变体,而FuzzyQuery类就是用于实现这个功能的类。

  7. PhraseQuery类: PhraseQuery类是Lucene用于短语搜索的类。在搜索时,有时候需要匹配文档中的短语,而PhraseQuery类就是用于实现这个功能的类。

  8. QueryParser类: QueryParser类是Lucene用于解析用户查询语句的类。在搜索时,用户输入的查询语句需要经过解析,将其转换为Lucene可以理解的查询对象,而QueryParser类就是用于实现这个功能的类。

  9. IndexWriterConfig类: IndexWriterConfig类是Lucene用于配置IndexWriter对象的类。在创建IndexWriter对象时,需要指定一些参数,而IndexWriterConfig类就是用于设置这些参数的类。

  10. Directory类: Directory类是Lucene用于表示索引存储位置的类。在创建IndexWriter或IndexSearcher对象时,需要指定索引存储位置,而Directory类就是用于表示这个位置的类。

  11. Analyzer类: Analyzer类是Lucene用于对文档进行分词和处理的类。在将文档写入索引时,需要对文档进行分词和处理,而Analyzer类就是用于实现这个功能的类。

  12. Document类: Document类是Lucene用于表示文档的类。在将文档写入索引时,需要将文档转换为Lucene可以理解的对象,而Document类就是用于表示这个对象的类。

  13. IndexSearcher类: IndexSearcher类是Lucene用于搜索索引的类。在搜索时,需要创建IndexSearcher对象,并使用它来执行搜索操作。

  14. BooleanQuery类: BooleanQuery类是Lucene用于实现布尔查询的类。在搜索时,有时候需要将多个查询条件组合起来进行查询,而BooleanQuery类就是用于实现这个功能的类。

  15. TopDocs类: TopDocs类是Lucene用于存储搜索结果的类。在执行搜索操作后,会返回TopDocs对象,其中包含了满足查询条件的文档列表和相关的文档评分信息。

  16. ScoreDoc类: ScoreDoc类是Lucene用于表示搜索结果中的文档和评分信息的类。在TopDocs对象中,每个文档都对应一个ScoreDoc对象,其中包含了文档的编号和评分信息。

  17. Explanation类: Explanation类是Lucene用于解释评分结果的类。在搜索时,评分是一个很重要的指标,而Explanation类就是用于帮助我们理解评分结果的类。

  18. Sort类: Sort类是Lucene用于排序搜索结果的类。在搜索时,有时候需要按照某个字段进行排序,而Sort类就是用于实现这个功能的类。

  19. QueryFilter类: QueryFilter类是Lucene用于实现查询过滤器的类。在搜索时,有时候需要对搜索结果进行过滤,而QueryFilter类就是用于实现这个功能的类。

  20. CachingWrapperFilter类: CachingWrapperFilter类是Lucene用于实现缓存过滤器的类。在搜索时,有时候需要对搜索结果进行缓存,而CachingWrapperFilter类就是用于实现这个功能的类。

  21. CustomScoreQuery类: CustomScoreQuery类是Lucene用于实现自定义评分的类。在搜索时,有时候需要根据业务需求进行自定义评分,而CustomScoreQuery类就是用于实现这个功能的类。

  22. MultiSearcher类: MultiSearcher类是Lucene用于在多个索引之间进行搜索的类。在搜索时,有时候需要同时搜索多个索引,而MultiSearcher类就是用于实现这个功能的类。

  23. FuzzyQuery类: FuzzyQuery类是Lucene用于实现模糊查询的类。在搜索时,有时候需要进行拼写错误纠正或者模糊匹配,而FuzzyQuery类就是用于实现这个功能的类。

  24. PhraseQuery类: PhraseQuery类是Lucene用于实现短语查询的类。在搜索时,有时候需要查询文本中的短语,而PhraseQuery类就是用于实现这个功能的类。

  25. PrefixQuery类: PrefixQuery类是Lucene用于实现前缀查询的类。在搜索时,有时候需要查询文本中以某个前缀开头的单词,而PrefixQuery类就是用于实现这个功能的类。

  26. RangeQuery类: RangeQuery类是Lucene用于实现范围查询的类。在搜索时,有时候需要查询文本中某个字段的值在一定范围内的文档,而RangeQuery类就是用于实现这个功能的类。

  27. TermQuery类: TermQuery类是Lucene用于实现词项查询的类。在搜索时,有时候需要查询文本中某个单词的出现情况,而TermQuery类就是用于实现这个功能的类。

  28. WildcardQuery类: WildcardQuery类是Lucene用于实现通配符查询的类。在搜索时,有时候需要查询文本中符合一定规则的单词,而WildcardQuery类就是用于实现这个功能的类。

  29. BooleanQuery类: BooleanQuery类是Lucene用于实现布尔查询的类。在搜索时,有时候需要查询满足多个条件的文档,而BooleanQuery类就是用于实现这个功能的类。它可以将多个查询条件进行组合,包括AND(交集)、OR(并集)和NOT(排除)等操作。

  30. BoostQuery类: BoostQuery类是Lucene用于实现查询加权的类。在搜索时,有时候需要对某些查询条件进行加权,以达到更精确的搜索结果,而BoostQuery类就是用于实现这个功能的类。

  31. ConstantScoreQuery类: ConstantScoreQuery类是Lucene用于实现常量得分查询的类。在搜索时,有时候需要对多个查询条件进行组合,并对所有满足条件的文档都赋予一个相同的分值,而ConstantScoreQuery类就是用于实现这个功能的类。

  32. DisjunctionMaxQuery类: DisjunctionMaxQuery类是Lucene用于实现最大化查询的类。在搜索时,有时候需要查询满足多个条件中最相关的文档,而DisjunctionMaxQuery类就是用于实现这个功能的类。它可以将多个查询条件进行组合,并找出其中得分最高的文档。

  33. MultiPhraseQuery类: MultiPhraseQuery类是Lucene用于实现多短语查询的类。在搜索时,有时候需要查询文本中包含多个短语的文档,而MultiPhraseQuery类就是用于实现这个功能的类。

  34. PayloadScoreQuery类: PayloadScoreQuery类是Lucene用于实现payload得分查询的类。在搜索时,有时候需要根据文档中的payload信息来计算得分,而PayloadScoreQuery类就是用于实现这个功能的类。

  35. SynonymQuery类: SynonymQuery类是Lucene用于实现同义词查询的类。在搜索时,有时候需要将某些词语视为同义词,并进行查询,而SynonymQuery类就是用于实现这个功能的类。

  36. FunctionScoreQuery类: FunctionScoreQuery类是Lucene用于实现自定义评分查询的类。在搜索时,有时候需要根据自定义的评分函数来计算得分,而FunctionScoreQuery类就是用于实现这个功能的类。

  37. TermVectorsReader类:TermVectorsReader类是Lucene用于读取词向量的类。在搜索时,有时候需要对词向量进行查询和分析,而TermVectorsReader类就是用于实现这个功能的类。

  38. FieldInvertState类:FieldInvertState类是Lucene用于表示索引中的文档域信息的类。在创建索引时,需要对文档域进行分析,并将其存储到索引中,而FieldInvertState类就是用于表示这些信息的类。

  39. IndexCommit类:IndexCommit类是Lucene用于表示索引提交信息的类。在创建索引时,需要将索引进行提交,以便进行搜索,而IndexCommit类就是用于表示这些提交信息的类。

  40. Sort类:Sort类是Lucene用于实现搜索结果排序的类。在搜索时,有时候需要对搜索结果进行排序,而Sort类就是用于实现这个功能的类。

  41. SortField类:SortField类是Lucene用于表示排序字段的类。在进行搜索结果排序时,需要指定排序的字段和排序方式,而SortField类就是用于表示这些信息的类。

  42. QueryRescorer类:QueryRescorer类是Lucene用于在搜索结果中重新计算得分的类。在搜索时,有时候需要根据一些特定的规则对搜索结果进行二次排序,而QueryRescorer类就是用于实现这个功能的类。

  43. IndexWriterConfig类:IndexWriterConfig类是Lucene用于配置索引写入器的类。在创建索引时,需要对索引写入器进行配置,以满足不同的需求,而IndexWriterConfig类就是用于实现这个功能的类。

  44. DirectoryReader类:DirectoryReader类是Lucene用于读取索引的类。在搜索时,需要读取索引来获取搜索结果,而DirectoryReader类就是用于实现这个功能的类。

  45. ParallelCompositeReader类:ParallelCompositeReader类是Lucene用于将多个索引合并成一个索引的类。在搜索时,有时候需要同时搜索多个索引,而ParallelCompositeReader类就是用于实现这个功能的类。

  46. SegmentInfos类:SegmentInfos类是Lucene用于表示索引中的段信息的类。在创建索引时,需要将索引分成多个段,以便进行优化和管理,而SegmentInfos类就是用于表示这些段信息的类。

  47. SegmentReader类:SegmentReader类是Lucene用于读取索引中的一个段的类。在进行搜索时,需要读取索引中的一个或多个段来获取搜索结果,而SegmentReader类就是用于实现这个功能的类。

  48. ChecksumIndexInput类:ChecksumIndexInput类是Lucene用于读取索引数据并校验校验和的类。在读取索引数据时,需要进行校验以确保数据的完整性,而ChecksumIndexInput类就是用于实现这个功能的类。

  49. ChecksumIndexOutput类:ChecksumIndexOutput类是Lucene用于写入索引数据并计算校验和的类。在写入索引数据时,需要计算校验和以确保数据的完整性,而ChecksumIndexOutput类就是用于实现这个功能的类。

  50. FilteredQuery类:FilteredQuery类是Lucene用于对搜索结果进行过滤的类。在搜索时,有时候需要根据一些条件对搜索结果进行过滤,而FilteredQuery类就是用于实现这个功能的类。

  51. FuzzyQuery类:FuzzyQuery类是Lucene用于进行模糊搜索的类。在搜索时,有时候需要进行模糊搜索以获取更全面的搜索结果,而FuzzyQuery类就是用于实现这个功能的类。

  52. NumericRangeQuery类:NumericRangeQuery类是Lucene用于进行数值范围搜索的类。在搜索时,有时候需要根据一定的数值范围来获取搜索结果,而NumericRangeQuery类就是用于实现这个功能的类。

  53. TermRangeQuery类:TermRangeQuery类是Lucene用于进行词项范围搜索的类。在搜索时,有时候需要根据一定的词项范围来获取搜索结果,而TermRangeQuery类就是用于实现这个功能的类。

  54. TopDocs类:TopDocs类是Lucene用于表示搜索结果的类。在进行搜索时,需要获取搜索结果并对其进行处理和展示,而TopDocs类就是用于表示这些搜索结果的类。

  55. TopFieldDocs类:TopFieldDocs类是Lucene用于表示带有排序字段的搜索结果的类。在进行搜索结果排序时,需要获取带有排序字段的搜索结果并对其进行处理和展示,而TopFieldDocs类就是用于表示这些搜索结果的类。

  56. PrefixQuery类:PrefixQuery类是Lucene用于进行前缀搜索的类。在搜索时,有时候需要根据词项的前缀来获取搜索结果,而PrefixQuery类就是用于实现这个功能的类。

  57. SegmentInfos类:SegmentInfos类是Lucene用于表示索引中的段信息的类。在创建索引时,需要将索引分成多个段,以便进行优化和管理,而SegmentInfos类就是用于表示这些段信息的类。

  58. SegmentReader类:SegmentReader类是Lucene用于读取索引中的一个段的类。在进行搜索时,需要读取索引中的一个或多个段来获取搜索结果,而SegmentReader类就是用于实现这个功能的类。

  59. ChecksumIndexInput类:ChecksumIndexInput类是Lucene用于读取索引数据并校验校验和的类。在读取索引数据时,需要进行校验以确保数据的完整性,而ChecksumIndexInput类就是用于实现这个功能的类。

  60. ChecksumIndexOutput类:ChecksumIndexOutput类是Lucene用于写入索引数据并计算校验和的类。在写入索引数据时,需要计算校验和以确保数据的完整性,而ChecksumIndexOutput类就是用于实现这个功能的类。

  61. FilteredQuery类:FilteredQuery类是Lucene用于对搜索结果进行过滤的类。在搜索时,有时候需要根据一些条件对搜索结果进行过滤,而FilteredQuery类就是用于实现这个功能的类。

  62. FuzzyQuery类:FuzzyQuery类是Lucene用于进行模糊搜索的类。在搜索时,有时候需要进行模糊搜索以获取更全面的搜索结果,而FuzzyQuery类就是用于实现这个功能的类。

  63. NumericRangeQuery类:NumericRangeQuery类是Lucene用于进行数值范围搜索的类。在搜索时,有时候需要根据一定的数值范围来获取搜索结果,而NumericRangeQuery类就是用于实现这个功能的类。

  64. TermRangeQuery类:TermRangeQuery类是Lucene用于进行词项范围搜索的类。在搜索时,有时候需要根据一定的词项范围来获取搜索结果,而TermRangeQuery类就是用于实现这个功能的类。

  65. TopDocs类:TopDocs类是Lucene用于表示搜索结果的类。在进行搜索时,需要获取搜索结果并对其进行处理和展示,而TopDocs类就是用于表示这些搜索结果的类。

  66. TopFieldDocs类:TopFieldDocs类是Lucene用于表示带有排序字段的搜索结果的类。在进行搜索结果排序时,需要获取带有排序字段的搜索结果并对其进行处理和展示,而TopFieldDocs类就是用于表示这些搜索结果的类。

  67. PrefixQuery类:PrefixQuery类是Lucene用于进行前缀搜索的类。在搜索时,有时候需要根据词项的前缀来获取搜索结果,而PrefixQuery类就是用于实现这个功能的类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_285996.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nextcloud去掉URL中的index.php以及强制https(Win10子系统WSL)

一、Nextcloud去掉URL中的index.php 1、启用相关模块 cd /var/www/nextcloud #进入程序目录sudo chmod -R 777 .htaccess #设置.htaccess文件权限可读写sudo a2enmod envaudo a2enmod rewrite #启用rewrite模块2、修改nextcloud配置文件 vim /var/www/nextcloud/config/…

<数据结构>NO1.算法的时空复杂度

文章目录🚩算法效率算法复杂度🪅时间复杂度大O的渐进表示法常见的时间复杂度举例🪅空间复杂度大O的渐进表示法常见的空间复杂度举例🗯️常见复杂度对比🗯️🚩算法效率 算法是一个被设计好的,计…

CentOS7.6 磁盘挂载

CentOS7.6 磁盘挂载 目录CentOS7.6 磁盘挂载1.磁盘说明2.磁盘分区步骤1.磁盘说明 1、Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘 2、对于IDE硬盘,驱动器标识符为"hdx",""代表分区,前四个分区用数字…

停车场管理系统文件录入(C++版)

❤️作者主页:微凉秋意 ✅作者简介:后端领域优质创作者🏆,CSDN内容合伙人🏆,阿里云专家博主🏆 文章目录一、案例需求描述1.1、汽车信息模块1.2、普通用户模块1.3、管理员用户模块二、案例分析三…

C++中的引用变量详解

文章目录声明及定义代码引用变量的特点图片解释引用变量的本质引用变量的用途int & 和 const int & 的区别引用变量和宏定义(#define)的区别声明及定义 [const] int& 变量名 右值 注意:[]内的是可选的。即这里的const限定词是可…

香港布局Web3.0 既是金融试探,也是未来战略

香港Web3.0协会成立的消息已在业内刷屏,作为跨业界的非盈利机构,该协会致力于促进Web3.0生态环境的建设,港府特首李家超和北京中央驻港联络办公室部分领导均出席了成立典礼。 李家超在致辞中表示,Web3.0的发展正值黄金起点&#x…

SpringCloud GateWay与Nacos使用

网关就相当于一个内网与外网的出入口,起着 安全、验证的功能,如果没有网关,那么如果需要实现验证的功能,除非 SpringCloud GateWay 作为微服务的网关,起着如下作用 ① 作为所有API接口服务请求的接入点 ② 作为所有后端业务服务…

如何在企业微信中使用低代码工具?

企业微信是一款非常强大的办公应用软件,可以方便地进行企业内部的沟通、协作、管理等工作。虽然企业微信本身并不提供低代码工具,但是可以通过集成第三方的低代码工具来实现在企业微信中的使用。 例如,可以使用低代码平台简道云,…

蓝桥杯之我见

前言 关于蓝桥杯,应该有很多人不知道这是一个什么样的比赛。但是作为一名合格的程序员,就算之前没有参加过蓝桥杯的比赛,或者没听说过蓝桥杯,读完本篇文章再说不知道蓝桥杯,就有点不合适了吧?!那…

Linux驱动之LED驱动

之前学习完了字符设备驱动的大体框架,现在我们就使用这个基本的框架来对硬件进行操作,例如通过指令控制led的状态,编写LED驱动。LED驱动有多种实现方式。 目录 GPIO函数 IO内存映射 混杂设备驱动 GPIO函数 首先加入需要的头文件。 #incl…

为一副通用纸牌设计数据结构

为一副通用纸牌设计数据结构 大家好,我是易安,今天我们来聊一道笔试题,这也是我曾经面试华为时做过的题,今天分享给大家。 题目: 如何设计一个通用的扑克牌数据结构?请解释如何继承它来实现特定的扑克游戏…

如何将本地项目上传到Github的方法步骤

默认:已经安装好了git。 第一步:我们需要先创建一个本地的版本库(其实也就是一个文件夹)。 你可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。 第二步:通过命令git init把这个…

【C++】1. 命名空间

文章目录一、命名空间的由来二、命名空间的使用2.1 关键字:namespace2.2 访问命名空间里的标识符2.3 命名空间的特点三、总结一、命名空间的由来 当我们使用c语言编写项目时,可能遇到以下情况: 变量名与某个库函数名重复,导致保…

HTML学习(5)Canvas绘图

文章目录HTML5 CanvasHTML5 内联SVGHTML5 Canvas 使用 Canvas 进行绘图工作&#xff0c;Canvas元素用于在网页上绘制图片。 创建一个Canvas的元素&#xff1a; <canvas id"myCanvas" width"200" height"100"></canvas>但是Canvas…

部署zabbix代理服务器和snmp监控

目录 zabbix代理服务器 分布式监控的作用 部署zabbix代理服务器 在 Web 页面配置 agent 代理 snmp监控 SNMP简介 部署zabbix-snmp 服务端安装snmp监控程序 在 Web 页面配置 snmp 方式监控 zabbix代理服务器 分布式监控的作用 分担 server 的集中式压力 解决多机房之…

算法训练第五十五天 | 392.判断子序列、115.不同的子序列

动态规划part15392.判断子序列题目描述思路总结115.不同的子序列题目描述思路392.判断子序列 题目链接&#xff1a;392.判断子序列 参考&#xff1a;https://programmercarl.com/0392.%E5%88%A4%E6%96%AD%E5%AD%90%E5%BA%8F%E5%88%97.html 题目描述 给定字符串 s 和 t &…

小红书内容种草,曝光渠道分析总结

这是一个内容为王的时代&#xff0c;也是一个内容爆炸的时代。想要在以分享特色的小红书平台&#xff0c;实现内容种草&#xff0c;迅速出圈。今天来马文化传媒就从实操的角度&#xff0c;为大家带来小红书内容种草&#xff0c;曝光渠道分析总结的各种干货&#xff01; 一、什…

【C++】深度剖析string类的底层结构及其模拟实现

文章目录前言1. string的结构2. 构造、析构2.1 无参构造2.2 带参构造2.3 问题发现及修改c_stroperator []析构2.4 合二为一 ——全缺省3. 拷贝构造3.1 浅拷贝的默认拷贝构造3.2 深拷贝拷贝构造的实现4. 赋值重载4.1 浅拷贝的默认赋值重载4.2 深拷贝赋值重载的实现5. string对象…

Leetcode.1631 最小体力消耗路径

题目链接 Leetcode.1631 最小体力消耗路径 Rating &#xff1a; 1948 题目描述 你准备参加一场远足活动。给你一个二维 rows x columns的地图 heights&#xff0c;其中 heights[row][col]表示格子 (row,col)(row, col)(row,col) 的高度。一开始你在最左上角的格子 (0,0)(0, 0)…

状态设计模式(State Pattern)[论点:概念、相关角色、图示、示例代码、框架中的运用、适用场景]

文章目录概念组成角色相关图示代码示例框架中的应用适用场景概念 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;用于解决对象在不同状态下的行为问题。它允许一个对象在其内部状态改变时改变它的行为。状态模式主要包含三个部分&#xff1a;…