- 博客(231)
- 资源 (28)
- 收藏
- 关注
原创 【进击面试_03】Java 并发
1.1 volatile1.1.1 JMM☞ JMM 是什么 JMM(Java 内存模型:Java Memory Model,简称 JMM)本身是一种抽象的概念并不真实存在,它描述的是一组规则或规范,定义了程序中各个共享变量的访问规则,即在虚拟机中将变量存储到内存和从内存读取变量这样的底层细节。 根据 JMM 的设计,系统存在一个主内存(Main Memory),Java 中所有实例变量都储存在主存中,对于所有线程都是共享的。每个线程都有自己的工作内存(Working Memory)是私有数据区
2021-03-02 03:00:44
2564
5
原创 【算法_02】两数相加
给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。
2021-03-01 22:00:02
358
原创 【算法_01】两数之和
给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
2021-02-28 04:06:24
323
原创 【进击面试_02】Java 多线程
1.1 基本概念1.1.1 线程与进程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。 线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。1.1.2 并行与并发 并发:在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有
2021-02-26 18:18:32
351
1
原创 【进击面试_01】Java 集合
1.1 List1.1.1 ArrayList ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足需要扩容时,就要将旧的数组复制到新的数组中。当从 ArrayList 的中间位置插入或者删除元素时,对数组进行复制、移动需要的代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。 ArrayList 是线程不安全的,只能用在单线程环境下,多线程环境下可以考虑用 Collections.syn
2021-02-19 21:21:39
317
2
原创 【全文检索_11】Logstash 基本使用
简单介绍了 Logstash 的 inputs、outputs、filters、codecs。这部分内容主要是孰能生巧。
2021-02-16 20:39:08
1452
3
原创 【全文检索_10】Filebeat 基本使用
Filebeat 是 Beats 的一员,用于转发和集中日志数据的轻量级传送工具。当面对成百上千、甚至成千上万的服务器、虚拟机和容器生成的日志时,Filebeat 将为您提供一种轻量型方法,监视指定的日志文件或位置,收集日志事件,并将它们转发到 Elasticsearch、 Logstash 等。
2021-02-09 17:50:30
955
原创 【全文检索_09】Logstash 基本介绍
ELK 是 Logstash(收集)、Elasticsearch(存储 + 搜索)、Kibana(展示),这三者的简称,以前称为 ELK Stack,现在称为 Elastic Stack,后来还加入了 Beats 来优化 Logstash。我们之前介绍了 Elasticsearch 和 Kibana 的简单使用,现在重点介绍一下 Logstash。
2021-02-08 23:24:43
478
1
原创 【全文检索_08】Spring Data Elasticsearch
Spring Data Elasticsearch 是 Spring Data 项目的一部分,该项目旨在为新数据存储提供熟悉且一致的基于 Spring 的编程模型,同时保留特定于存储的功能。Spring Data Elasticsearch 项目提供了与 Elasticsearch 搜索引擎的集成。
2021-02-07 22:31:17
431
原创 【全文检索_07】JestClient 操作 Elasticsearch
JestClient 是一款基于 HTTP 方式操作的 Elasticsearch 的客户端,支持同步和异步操作,同时也可以结合 ElasticSearch 的依赖进行操作 Elasticsearch。
2021-02-02 04:48:07
973
1
原创 【全文检索_04】Elasticsearch 基础入门
Elaticsearch 简称为 es,es 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB(1PB=1024TB) 级别的数据。es 也使用 java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。
2021-01-26 21:34:08
259
原创 【全文检索_02】Lucene 入门案例
Lucene 是 apache 软体基金会发布的一个开放原始码的全文检索引擎工具包,由资深全文检索专家 Doug Cutting 所撰写,它是一个全文检索引擎的架构,提供了完整的建立索引和查询索引,以及部分文字分析的引擎,Lucene 的目的是为软体开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎,Lucene 在全文检索领域是一个经典的祖先,现在很多检索引擎都是在其基础上建立的,思想是相通的。
2021-01-21 19:31:55
323
1
原创 【全文检索_01】核心理论
全文检索是 20世纪末产生的一种新的信息检索技术。经过几十年的发展,特别是以计算机技术为代表的新一代信息技术应用,使全文检索从最初的字符串匹配和简单的布尔逻辑检索技术演进到能对超大文本、语音、图像、活动影像等非结构化数据进行综合管理的复合技术。
2021-01-20 23:28:43
314
原创 设计模式 ☞ 行为型之责任链模式
责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。责任链模式也叫职责链模式。
2021-01-16 00:04:43
172
原创 设计模式 ☞ 行为型之策略模式
策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。
2021-01-15 00:03:40
195
原创 设计模式 ☞ 行为型之状态模式
状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。
2021-01-14 19:40:39
176
原创 设计模式 ☞ 行为型之解释器模式
解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。
2021-01-14 00:10:21
175
原创 设计模式 ☞ 行为型之备忘录模式
备忘录(Memento)模式的定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。
2021-01-13 19:45:53
148
原创 设计模式 ☞ 行为型之中介者模式
中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互,中介者模式又叫调停模式。
2021-01-12 21:07:32
143
原创 设计模式 ☞ 行为型之观察者模式
观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式。
2021-01-12 19:35:09
136
原创 设计模式 ☞ 行为型之访问者模式
访问者(Visitor)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离,是行为类模式中最复杂的一种模式。
2021-01-11 19:54:53
143
原创 设计模式 ☞ 行为型之命令模式
命令(Command)模式的定义如下:将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。
2021-01-11 09:19:16
167
原创 设计模式 ☞ 行为型之模板方法模式
模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,允许子类在不修改结构的情况下重写算法的特定步骤。
2021-01-07 22:22:40
176
原创 设计模式 ☞ 结构型模式之代理模式
代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介,代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。
2021-01-07 00:15:39
179
原创 设计模式 ☞ 结构型模式之享元模式
享元(Flyweight)模式的定义:运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似类的开销,从而提高系统资源的利用率。
2021-01-05 14:04:08
187
原创 设计模式 ☞ 结构型模式之外观模式
外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外提供一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。
2021-01-04 19:30:14
163
原创 设计模式 ☞ 结构型模式之组合模式
组合(Composite Pattern)模式的定义:又称整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。
2021-01-04 14:08:15
170
原创 设计模式 ☞ 结构型模式之装饰器模式
装饰(Decorator)模式的定义:指在不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式,它属于对象结构型模式。即允许通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。
2020-12-31 14:01:56
178
原创 设计模式 ☞ 结构型模式之桥接模式
桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化,简单来说,就是将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。
2020-12-30 21:10:09
195
原创 设计模式 ☞ 结构型模式之适配器模式
适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。
2020-12-30 14:08:45
172
原创 设计模式 ☞ 创建型模式之建造者模式
建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。
2020-12-28 19:42:50
172
原创 设计模式 ☞ 创建型模式之原型模式
原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。
2020-12-25 20:34:48
175
原创 设计模式 ☞ 创建型模式之抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式,用于产品族的构建。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂是指当有多个抽象角色时使用的一种工厂模式。
2020-12-24 19:57:36
242
原创 设计模式 ☞ 创建型模式之工厂方法模式
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现‘开闭原则’,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。
2020-12-24 14:04:22
253
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人